RedisWordPress建站数据库

使用Redis Object Cache插件+Redis集群给WordPress访问提速

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成为数据库缓存领域的优质选择。

使用Redis Object Cache插件+Redis集群给WordPress访问提速

为了提升网站速度,降低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 Object Cache插件+Redis集群给WordPress访问提速

登录任意一个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