redis连不上需排查三件事:一是确认redis-server进程运行中;二是php-redis扩展须匹配当前PHP版本;三是宝塔安全组需放行6379端口,否则远程或socket连接失败。

Redis 服务装完但连不上?先看这三件事
宝塔里点几下装好 Redis,不代表它就能被 PHP 或 wordpress 用上——连接失败绝大多数时候不是配置写错了,而是底层没通。
-
redis-server进程没在跑:进宝塔「服务」页,确认 Redis 状态是「运行中」,不是「已停止」或「安装中」 -
php-redis扩展没装对 PHP 版本:WordPress 用的是 PHP 8.1,你却在 PHP 7.4 里装了扩展,extension=redis.so根本不会加载 - 防火墙拦了
6379端口:宝塔「安全」页里默认不放行该端口,本地调用(127.0.0.1)通常不受影响,但微擎、thinkphp 等若走 socket 或远程连接就会卡住
wp-config.php 里加 Redis 配置,密码字段别留空注释
很多人复制教程代码,把 define('WP_REDIS_PASSWORD', 'xxx'); 这行保留着但填了空密码,结果 WordPress 尝试用空字符串去 auth,Redis 直接拒绝连接——它不认为空密码等于“无密码”。
- 如果你没在宝塔 Redis 设置里设密码,整行
define('WP_REDIS_PASSWORD', ...);必须删掉,不能注释留着 - 本地连接务必用
127.0.0.1,别写localhost:PHP 的 Redis 扩展会尝试走 unix socket,而宝塔默认不启用 socket 文件,导致超时 -
WP_REDIS_TIMEOUT和WP_REDIS_READ_TIMEOUT设成1是合理值,设太大(比如5)会让页面卡顿更明显,而不是“更稳”
微擎 / ThinkPHP 怎么读取 Redis 配置?不是改 wp-config.php
微擎读的是 /data/config.php,ThinkPHP 常用自定义 RedisPackage.php 类封装连接逻辑——它们都不认 WordPress 那套 WP_REDIS_* 常量,硬塞进去没用。
- 微擎要改
$config['setting']['redis']数组,且'auth' => ''表示无密码;如果填了NULL或false,$redis->auth()会报错 - ThinkPHP 自建类里,
$func = $this->options['persistent'] ? 'pconnect' : 'connect'这句很关键:宝塔 Redis 默认禁用tcp keepalive,长连接(pconnect)在高并发下反而容易断,建议先用connect - 所有框架里,
new Redis()后必须立刻检查extension_loaded('redis'),否则上线后只有白屏,错误日志里连提示都没有
Redis 管理工具里看不到 key?可能是缓存根本没打到 Redis 上
宝塔自带的 Redis 管理页显示 “0 keys”,不等于 Redis 挂了,更可能是你的应用压根没成功执行写操作——比如 WordPress 插件没启用、微擎性能优化开关关着、或 ThinkPHP 缓存驱动没切到 redis。
- WordPress 后台进「设置 → Redis」,看到
Status: Connected才算通;只显示插件已启用 ≠ 缓存生效 - 微擎后台「站点设置 → 性能优化」里,“Redis 缓存” 开关必须手动打开,光改配置文件不生效
- ThinkPHP 的
cache.php中,'type' => 'redis'和'host' => '127.0.0.1'必须同时正确,漏一个都会静默回退到 file 缓存
最常被忽略的一点:Redis 服务重启后,PHP-FPM 不会自动重载扩展,旧进程仍用着上一轮的连接池。哪怕配置全对,也得手动在宝塔里点一次「重启 PHP 服务」——这不是多此一举,是必须动作。