🔍 问题原因
WordPress 无法连接到 Redis 服务,通常由以下几点导致:
- Redis 服务未运行:服务器上的 Redis 进程没有启动。
- 连接信息错误:
wp-config.php中配置的 Redis 主机地址、端口或密码不正确。 - 网络或安全限制:防火墙、安全组或 Redis 配置阻止了连接。
- 权限问题:Redis 服务未对 WordPress 所在的主机开放访问权限。
🛠️ 排查与解决步骤
1. 检查 Redis 服务状态
在服务器上执行以下命令,确认 Redis 是否在运行:
# 检查 Redis 服务状态
systemctl status redis
# 如果未运行,启动 Redis 服务
systemctl start redis
# 设置开机自启(可选)
systemctl enable redis
2. 验证 Redis 连接信息
打开 WordPress 根目录下的
wp-config.php 文件,检查以下配置项是否正确:// 示例配置
define('WP_REDIS_HOST', '127.0.0.1'); // Redis 主机地址(本地为 127.0.0.1)
define('WP_REDIS_PORT', 6379); // Redis 默认端口
define('WP_REDIS_PASSWORD', ''); // 如果设置了密码,需要填写
define('WP_REDIS_DATABASE', 0); // 使用的数据库编号
- 如果 Redis 部署在其他服务器,
WP_REDIS_HOST应填写对应服务器的内网或公网 IP。 - 确认端口号与 Redis 配置文件(
redis.conf)中的port配置一致。
3. 检查 Redis 配置与防火墙
- Redis 绑定地址:在
redis.conf中,确保bind配置允许 WordPress 服务器访问。如果是本地服务,bind 127.0.0.1即可;如果需要远程访问,需配置为bind 0.0.0.0并设置密码。 - 防火墙规则:确保服务器防火墙(如 iptables、ufw)或云服务商安全组允许 6379 端口的入站连接。
# 示例:使用 ufw 开放 6379 端口 ufw allow 6379
4. 测试 Redis 连通性
在 WordPress 服务器上使用
redis-cli 工具测试连接:# 连接到 Redis
redis-cli -h <REDIS_HOST> -p <REDIS_PORT>
# 如果设置了密码,连接后执行
AUTH <REDIS_PASSWORD>
# 测试是否能正常响应
ping
如果返回
PONG,说明连接正常;如果返回错误,则需要检查网络和配置。5. 临时禁用 Redis(应急方案)
如果需要快速恢复网站访问,可以按照提示删除
object-cache.php 文件:rm /path/to/your/wordpress/wp-content/object-cache.php
删除后,WordPress 将回退到默认的数据库缓存,网站即可恢复访问。
💡 预防建议
- 定期检查 Redis 服务状态,可通过监控工具(如 Prometheus + Grafana)进行告警。
- 生产环境中,务必为 Redis 设置密码,并限制可访问的 IP 地址。
- 升级 Redis 和 WordPress 插件到最新版本,避免已知的兼容性问题。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/wp/319318.html