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实例导致缓存污染这个问题太真实了,我两个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缓存立马就通了。
The PHP extension version matching is such a common pitfall. I was running PHP 8.1 but installed redis extension for 7.4. No wonder it kept saying Class not found.
宝塔装Redis这个坑我踩过好几次,装完以为好了,结果网站还是慢。原来要进服务列表确认“运行中”,这个细节太关键了。