WordPress
启用 Redis
,常用途径是借助插件 Redis Object Cache
,由于 Redis
自 6.0
版本开始引入访问控制列表(ACL
),配置方式随之发生些许变化,本文从头到尾梳理一遍最新版的使用方法。
一、安装Redis和PHP拓展
Redis
和 PHP
的Redis
拓展,都是很常见的软件应用,安装方法非常多,不做赘述。如果都已经准备就绪,请直接跳到第二步。
1.安装软件
这里简单展示下用宝塔面板可视化安装后的状态:
PHP
拓展如图:
2.Redis 添加用户
重点在于添加用户,贴一些常见报错,通常都是用户信息/权限配置不正确的缘故。
NOPERM No permissions to access a key
WordPress is unable to establish a connection to Redis. This means that the connection information in your wp-config.php file are incorrect, or that the Redis server is not reachable.
Error establishing a Redis connection
SELECT
failed: NOAUTH Authentication required. [tcp://127.0.0.1:6379]
Redis 6.0+
的版本,需要用户名 ( username
) 和 密码 ( password
) 进行认证,而旧版本只需要密码就行,注意区别!
在 Redis
配置文件中添加一个用户的方法:
user admin on >admin123 ~* +@all
示例说明
- 用户名:
admin
- 密码:
admin123
- 允许访问所有键:
~*
- 允许使用全部命令:
+@all
具体业务中,避免过度授权,按需分配最小权限以确保安全。
二、安装插件 Redis Object Cache
Redis Object Cache
插件,当前版本2.5.4
已经兼容了 Redis
的 ACL
机制,在 WordPress
官方插件市场可以很容易找到,如图:
版本要求
WordPress
版本:4.6
或更高版本PHP
版本:7.2
或更高版本
1.安装插件
下载Redis Object Cache
插件压缩包后,有两种安装方式。
-
第一种:解压至
WordPress
目录/wp-content/plugins/
,然后在后台启用。 -
第二种:把压缩包中的一个文件:
redis-cache/includes/object-cache.php
,手动放置在WordPress
目录/wp-content/
中。
简述下原理,第一种是常规全量安装,插件启用后,会自动把 object-cache.php
文件复制一份到/wp-content/
中,并在后台提供可视化操作面板,十分友好。第二种是仅安装内核 object-cache.php
,不需要可视化操作,更加轻量。
根据自己习惯或结合实际业务,二选一即可。
2.配置插件
文件 wp-config.php
中,关于 Redis
插件配置,最核心的有两个:
define('WP_REDIS_DISABLED',false); // 是否使用 Redis 服务
define('WP_REDIS_PASSWORD',['admin','admin123']); // Redis 用户名和密码
其中,WP_REDIS_PASSWORD
虽然字面上仅代表密码,但插件为了兼容旧版本,沿用了这个全局变量,参考插件代码处理逻辑:
对比旧版:
define('WP_REDIS_PASSWORD', 'admin123'); // Redis 密码
更多高级配置见插件官网。
至此,大功告成!
三、 关于Redis的常用操作
1.查看是否启动
$ ps -ef|grep redis
2.redis-cli 登录
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth admin admin123
127.0.0.1:6379> keys *
1) "wp:posts:39999"
2) ...
3.清理全部数据
> FLUSHALL
最后附上实测环境,仅供参考。
- CentOS 8
- WordPress 5.9
- PHP 7.4.33
- Nginx 1.18.0
- MySQL 5.6.50
- Redis 7.2.3
- Redis Object Cache 插件 2.5.4