Redis是个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value型NoSQL数据库。凭借自身丰富的API、超高的性能以及支持持久化存储等特点,Redis成为数据库缓存领域的优质选择。
为了提升网站速度,降低MySQL的负载,通常都需要将数据缓存到内存中,常用的就是memcached、redis,但是相对来说Redis更符合需求,而且也更通用。于是就选择了Redis,而WordPress常用的redis缓存插件就是Redis Object Cache了,直接搜索名称安装即可。
Redis是个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。
Redis是个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value型NoSQL数据库。凭借自身丰富的API、超高的性能以及支持持久化存储等特点,Redis成为数据库缓存领域的优质选择。
为了提升网站速度,降低MySQL的负载,通常都需要将数据缓存到内存中,常用的就是memcached、redis,但是相对来说Redis更符合需求,而且也更通用。于是就选择了Redis,而WordPress常用的redis缓存插件就是Redis Object Cache了,直接搜索名称安装即可。
Redis Object Cache插件默认会连接localhost:6379的redis,并且database为0。但是目前我的网站是由多台服务器支撑,所以打算再折腾折腾。单机版的Redis自然足矣支撑了,但是另一台机器闲置着岂不浪费了,于是就考虑使用Reids主从、哨兵、集群。其中最简单的就是主从了。
搭建Redis主从结构
10.99.0.1 master 10.00.0.2 slave-01
上面的内容就是Redis的主从角色。安装redis很简单,不太会操作的童鞋可以自己在本站搜索下redis安装方法。直接从配置开始:
master配置:
bind 10.99.0.1 ::1 bind 10.99.0.1 # 关闭保护模式,因为需要配置密码 protected-mode no # 端口号 port 6379 # 守护进程 daemonize yes databases 16 loglevel notice logfile /usr/local/redis/var/redis.log slave-serve-stale-data yes slave-read-only yes # 配置redis认证 requirepass yourpassword
启动Master节点的redis。测试认证
redis-cli -h 10.99.0.1 -a yourpassword info
部署Slave节点的redis
将master节点的redis.conf拷贝到slave的服务器上(10.99.0.2)。新增如下配置:
# 配置Master的ip与端口 slaveof 10.99.0.1 6379 # 配置master密码 masterauth yourpassword # 其余配置与master保持一致,只需要修改bind即可 bind 10.99.0.2
启动slave节点的redis,测试认证:
redis-cli -h 10.99.0.2 -a yourpassword info
测试在master几点设置一个key,然后在slave节点查看,并修改,如果能够看到master设置的key,并且无法修改,则表示搭建成功。
接着修改wp-config.php,让redis object cache支持主从模式的redis。
在wp-config.php中新增如下配置:
// redis define('WP_REDIS_HOST',['10.99.0.1','10.99.0.2']); define('WP_REDIS_SERVERS', [ 'tcp://10.99.0.1:6379?database=6&alias=master', 'tcp://10.99.0.2:6379?database=6&alias=slave-01', ]); define('WP_REDIS_PASSWORD','yourpassword'); define('WP_REDIS_DATABASE','6');
这里需要注意WP_REDIS_SERVERS的alias的两个名词必须是master和slave-01这种形式,我修改成Master和Slave-01会发现Redis Obejct Cache无法连接。
开启Redis Object Cache后,如下图所示:
登录任意一个redis,切换数据库到6,查看是否有内容:
redis-cli -h 10.99.0.1 -a yourpassword
select 6
keys *
如果有内容,则表示Redis已经生效。
关于哨兵、集群等模式的配置,请参考官方文档:https://cn.wordpress.org/plugins/redis-cache/
补充资料:
Redis Object Cache插件的个性化配置:
*通过修改Wordpress的设置文件wp-config.php,添加修改Redis Object Cache的配置。
(1)WP_REDIS_CLIENT (default: not set) 指定用于与Redis通信的客户端;
(2)WP_REDIS_SCHEME (default: tcp) 指定用于与Redis实例进行通信的协议。
(3)WP_REDIS_HOST (default: 127.0.0.1) 目标服务器的IP或主机名。
(4)WP_REDIS_PORT 目标服务器的TCP / IP端口。
(5)WP_REDIS_DATABASE (default: 0) 接受用于使用该SELECT命令自动选择逻辑数据库的数值。
(6)P_REDIS_PASSWORD (default: not set) 接受用于使用该AUTH命令的受密码保护的Redis服务器进行身份验证的值。
(7)WP_CACHE_KEY_SALT (default: not set)设置所有缓存键的前缀。(Wordpress多站点。)
*配置用法举例:
define('WP_REDIS_CLIENT', 'pecl'); define('WP_REDIS_SCHEME', 'tcp'); define('WP_REDIS_HOST', '$Your.Redis.IP'); define('WP_REDIS_DATABASE', '0'); define('WP_CACHE_KEY_SALT', 'wp_'); define('WP_REDIS_MAXTTL', '86400');
(END)
原文来自Charles’s Blog:https://www.liyang.pro/archives/97
补充资料源自:https://www.skyoy.com/wordpress-redis-object-cache.html