wordpress使用Redis Object Cache缓存加速

wordpress使用cdn后,静态资源被cdn缓存,起到部分加速作用,动态内容不能被cdn缓存,因此加速效果有限。即使通过rewrite设置伪静态,也不能避免wordpress查询数据库。因此文档中将动态内容存入redis作为缓存,加速访问。另外,redis作为内存型数据库,默认情况下有多少内存吃多少内存,不建议内存2G以下内存使用,否则可能起到反效果。

具体过程如下:

1,安装redis,如有可忽略此步骤。

2,安装php-redis组件,如有可忽略此步骤。

3,登录wordpress后台,安装Redis Object Cache插件,安装后启用之。

4,修改/wp-content/plugins/redis-cache/includes/object-cache.php文件,增加密码选项,如果redis没有密码,此步骤可忽略。(这里感觉好多文档是假的,只让在wp-config.php中定义redis密码,实际上在启用插件时,会复制object-cache.php到wp-content目录下,只修改wp-config.php并不能使缓存生效)。

这是文件原来的状态。

增加密码配置。

5,修改wp-config.php,增加redis配置。

define(‘WP_REDIS_CLIENT’, ‘pecl’); # 指定用于与Redis通信的客户端, pecl 即 The PHP Extension Community Library

define(‘WP_REDIS_SCHEME’, ‘tcp’); # 指定用于与Redis实例进行通信的协议

define(‘WP_REDIS_HOST’, ‘127.0.0.1’); # Redis服务器的IP或主机名

define(‘WP_REDIS_PORT’, ‘6379’); # Redis端口

define(‘WP_REDIS_DATABASE’, ‘0’); # 接受用于使用该SELECT命令自动选择逻辑数据库的数值

define(‘WP_REDIS_PASSWORD’, ”); # Redis密码

define(‘WP_CACHE_KEY_SALT’, ‘wp_’); # 设置所有缓存键的前缀(Wordpress多站点模式下使用)

define(‘WP_REDIS_MAXTTL’, ‘86400’);

6,设置–>Redis中开启插件。

7,看Status变为Connected,配置完成。

这里好像有个bug,启用了密码之后这里仍然显示没有启用密码。

至此配置完成,下面进行验证:

8,先打开redis-cli,在随意打开页面,看到有数据进入redis即缓存生效。

redis-cli -a 123456 monitor

后续问题:

1,如此配置后出现后台不能登陆的问题,删除所有key后可以登录,怀疑是redis中缓存了用户登录信息。

wp-config.php中删掉这一行即可恢复,看起来是多站点使用的,不知道为什么会这样。

define(‘WP_CACHE_KEY_SALT’, ‘wp_’);

本文链接地址: https://danteng.org/wordpress-cached-by-redis-object-cache/