Redis服务必须运行且状态为“运行中”,配置才生效;需检查端口、密码、安全组、PHP扩展版本、wp-config.php位置、超时设置、IP地址、多实例隔离及连接验证。

Redis 服务没运行,一切配置都是白搭
宝塔里点“安装 Redis”不等于它就在干活——很多人卡在这一步:装完没检查状态,直接去配 PHP 或 WordPress,结果连不上。必须进宝塔「服务」列表确认状态是「运行中」,不是「已安装」或「已停止」。
- 如果显示「启动失败」,先看日志:
/www/wwwlogs/redis.log,常见原因是端口6379被占用(比如之前手动跑过 Redis,或 Docker 占了) - 宝塔默认不设密码,但如果你在「Redis 管理」里开了密码,
WP_REDIS_PASSWORD就必须加,且不能留空字符串;空密码要删掉整行,不是写'' - 云服务器(阿里云/腾讯云)务必在安全组放行
6379端口,宝塔「安全」页面的防火墙规则只是系统层,云平台还有独立网络策略
PHP 扩展装错版本,WordPress 就会报 “Class 'Redis' not found”
WordPress 后台启用 Redis 插件时突然报错,八成是 PHP 扩展没装对。宝塔支持多个 PHP 版本共存,但你网站用的是 PHP 8.1,却给 PHP 7.4 装了 redis 扩展,完全无效。
- 进宝塔「网站」→ 点击你的站点 → 看右上角「PHP 版本」,记下确切版本号(如
8.1) - 去「软件商店」找到对应 PHP 的「设置」→「安装扩展」→ 勾选
redis(不是memcached,也不是igbinary) - 安装完必须点「重启 PHP 服务」,光刷新页面或重载 Nginx 没用
- 验证是否生效:在网站根目录建一个
info.php,内容为<?php phpinfo(); ?>,浏览器访问,搜索「redis」看有没有 Loaded 那一行
wp-config.php 配置写错位置或参数,连接永远超时
很多用户把 Redis 配置塞到 wp-config.php 最底下,或者插在 /* That's all, stop editing! */ 后面——这会导致常量未被识别,插件读不到连接信息。
- 必须放在
define('WP_DEBUG', false);下方、/* That's all, stop editing! */上方 WP_REDIS_TIMEOUT和WP_REDIS_READ_TIMEOUT建议设为1(秒),设太大(比如5)会让页面卡顿明显,尤其在 Redis 响应慢时- 本地部署一律用
127.0.0.1,别写localhost——PHP 的redis扩展会走 socket,localhost可能触发 IPv6 解析失败 - 如果改过 Redis 端口(比如改成
6380),除了改配置,还要确认宝塔「Redis 管理」里端口同步改了,否则服务实际还在听6379
多站点共用一个 Redis 实例,缓存互相污染
一台服务器跑 WordPress 博客 + 微擎后台 + 自研 API,全连同一个 127.0.0.1:6379,缓存键名没隔离,A 站点删缓存可能清掉 B 站点的数据,后台登录态莫名失效就是这个原因。
- 简单方案:每个站点用不同
database(如博客用DB 0,微擎用DB 1),但需插件/框架支持;WordPress 的Redis Object Cache默认不支持切库 - 靠谱方案:按站点开独立 Redis 实例,比如博客用
6380,微擎用6381,配置文件各自指向不同端口,进程、日志、数据目录完全分离 - 注意:复制配置文件后,必须改
pidfile和dir,否则多个实例会抢同一个 PID 文件,启动第二个就失败
最常被跳过的动作是验证连接状态——进了 WordPress 后台「设置」→「Redis」,看到 Status 显示 Connected 才算真正通了。没这行字,前面所有操作都得回头查。
我补充一点,如果用Redis做对象缓存,记得检查object-cache.php文件权限,有时插件写不进去。
This article covers every possible failure point. From service status to extension version to config placement to port security.
PHP扩展装完必须重启PHP服务,这个提醒太重要了。之前光刷新页面以为生效了,浪费了半天时间。
The explanation about Redis instances not automatically starting after install is spot on. I always check the service list now.
info.php里搜redis验证扩展是否加载,这个方法我每次装完都跑一遍。看到Loaded这一行才放心。
Great article! The verification step of checking Status: Connected in WordPress admin is something so simple yet often overlooked.
WP_REDIS_TIMEOUT设1秒这个建议很实用,之前设5秒,Redis响应慢的时候页面卡半天。改短之后体验好多了。
The security group and firewall double-check is crucial. I had Redis running but cloud platform was blocking the port. One minute to fix after reading this.
多站点共用Redis实例导致缓存污染这个问题太真实了,我两个WordPress站点互相串数据,后来分开端口才解决。
Finally someone explains the localhost vs 127.0.0.1 difference. IPv6 resolution was causing random connection timeouts on my server. Switched to IP and it's stable now.
wp-config.php配置位置说得很准,我之前一直放文件最后面,结果常量总是不生效。放对位置之后Redis缓存立马就通了。