ThinkPHP 5 配置 Redis 密码必须显式填写字符串值,无密码时也须写为 'password' => '';若留空、省略、设为 null/false/0 或删除该行,会导致缓存退化为 file 驱动。

ThinkPHP 5 配置 Redis 密码,关键不是“填不填”,而是**必须显式填写字符串值,哪怕为空也要写 '',绝不能留空、省略或设为 null**。很多缓存写入失败、静默退化为 file 驱动,根源就在这里。
密码字段的正确写法
在 application/config.php 的 'cache' => [] 配置块中,'password' 必须是字符串类型:
- ✅ 正确(有密码):
'password' => 'your_real_password' - ✅ 正确(无密码):
'password' => ''(两个单引号,中间无空格) - ❌ 错误:
'password' => null(框架会报错或忽略) - ❌ 错误:
'password' => false或'password' => 0 - ❌ 错误:直接删掉这一行(配置不完整,驱动注册失败)
配套必须检查的三项
只配对 password 不够,下面三点缺一不可:
-
PHP 扩展已启用:运行
php -m | grep redis,必须看到redis;否则密码配置完全无效 -
Redis 服务端已设密:确认
redis.conf中已取消注释并设置requirepass your_real_password,且重启了 Redis -
type 值为小写 redis:写成
'type' => 'Redis'或'REDIS'会导致驱动未识别,密码自然不生效
验证密码是否起作用
用最简方式测试连接与认证是否通:
当用户希望自动格式化、排版或美化 Word(`.docx`)文档时,应使用此技能。触发语包括: - “帮我排版这个Word” - “自动格式化文档” - “统一字体行距” - “论文/报告排版” - “Word排版” - “整理文档格式” - “format this Word file” - “auto typeset” - “standardize document style” 该技能提供一个 Python 脚本(`word_formatter.py`),可
立即学习“PHP免费学习笔记(深入)”;
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_real_password'); // 这里传入你配置的密码
$redis->set('test_auth', 'ok');
echo $redis->get('test_auth'); // 能输出 ok,说明密码配置和认证都成功
如果 auth() 报错 NOAUTH Authentication required,说明服务端没设密或密码不对;如果报 ERR invalid password,说明客户端密码填错了。
常见误区提醒
很多人以为“没设密码就不用管 password 字段”,这是 TP5 最典型的配置陷阱:
- TP5 的 Redis 驱动类会严格检查
password是否存在且为字符串,缺失即视为配置错误 - 即使 Redis 服务端没设密码,也必须保留
'password' => ''这一行 - 不要在配置里写
'password' => 'null'(字符串 null)或'password' => "''"(带引号的空字符串)


















