thinkphp连接redis缓存成功的关键在于严格按四步执行:确认phpredis扩展已启用并重启服务;安装topthink/think-redis包;在config/cache.php中准确配置default为'redis'及stores.redis下的type/host/port/password/select等字段;最后通过命令行和redis-cli双重验证缓存是否真实生效。

ThinkPHP 连接 Redis 缓存不是改个配置就完事,关键在“每一步都踩准”——少一步或错一个字母(比如 type 写成 Redis),缓存就会静默退回到 file 驱动,你却毫无察觉。
第一步:确认 PHP 环境已支持 Redis
这是地基,90% 的“缓存不生效”卡在这儿。
- 运行
php -m | grep redis,终端必须输出 redis;没输出说明扩展根本没加载 - Linux/macOS:用
pecl install redis安装,再在php.ini加extension=redis.so - Windows:下载与 PHP 版本严格匹配的
php_redis.dll(注意 TS/NTS、VC 版本),放进ext目录,并在php.ini加extension=php_redis.dll - 改完 php.ini 后必须重启 PHP-FPM 或 Web 服务器(Nginx/Apache),否则后续全白忙
第二步:安装官方适配包(TP6/TP8 必做)
ThinkPHP 6 和 8 不内置 Redis 驱动类,只装 PHP 扩展还不够,必须补上这个“翻译官”。
- 项目根目录执行:
composer require topthink/think-redis - 安装后检查
vendor/topthink/think-redis/src/Driver.php是否存在 - 若用 Swoole 或自定义命令行,需手动注册:
ThinkRedisServiceProvider::register()
第三步:填对 config/cache.php 的核心字段
配置不是“看着差不多”,四个字段缺一不可,且大小写、类型、值都要严丝合缝:
-
'default' => 'redis'—— 小写,不能是Redis或REDIS -
'stores' => ['redis' => [...]]块里必须显式写全:type、host、port、password、select(TP5.1/TP6/TP8 中对应字段名略有差异,但含义一致) -
select必须是整数(如0),不能是字符串"0";空密码也得写'',不能省略或写null - 推荐加:
'timeout' => 3(防阻塞)、'prefix' => 'app:'(防 key 冲突)、'serialize' => 'json'(更轻量)
第四步:用命令行快速验证是否真连上了
别信配置文件写了就生效,实测最可靠:
- 执行:
php -r "var_dump(cache('test_key', 'ok', 30));"→ 应输出string(2) "ok" - 再执行:
php -r "var_dump(cache('test_key'));"→ 仍输出string(2) "ok"才算通 - 若第二次是
NULL,说明还在用 file 驱动,立刻回头查前三步 - 进 Redis 控制台:
redis-cli keys "app:test_key",能查到 key 才是真正落地
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











