thinkphp 5.1.41 开启 redis 缓存需四步:确认 php 已加载 redis 扩展;正确配置 config/cache.php 中 default 和 stores.redis 各字段(如 select 为整数、password 显式写 '');通过命令行 cache() 函数实测读写;无需安装 think-redis 包。

ThinkPHP 5.1.41 开启 Redis 缓存,核心是让框架真正用上 Redis 驱动,而不是停留在“配置写了但没生效”的状态。关键不在加几行代码,而在每一步是否踩准——环境、驱动、配置、验证,缺一不可。
确认 PHP 已加载 redis 扩展
这是最常卡住的一步。TP5.1.41 依赖原生 redis 扩展(不是 predis),不装它,后面全白搭。
- 执行
php -m | grep redis,终端必须输出redis;Windows 用户可运行php --ri redis或查phpinfo() - 若无结果:Linux 用
pecl install redis或包管理器安装;Windows 下下载匹配 PHP 版本(TS/NTS、x64/x86)的php_redis.dll,放入ext目录,并在php.ini中添加extension=php_redis.dll - 改完 php.ini 后必须重启 PHP-FPM 和 Web 服务(如 Nginx/Apache),否则扩展不会生效
配置 config/cache.php 文件
TP5.1.41 的缓存配置是复合型结构,default 要指向 redis,同时 stores.redis 必须完整定义,字段一个都不能少、类型一个都不能错。
- 打开
config/cache.php,确保包含以下结构(注意大小写和整型):
'default' => 'redis',
'stores' => [
'redis' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '', // 即使为空也必须写 ''
'select' => 0, // 必须是整数,不能是字符串 "0"
'timeout' => 3,
'expire' => 3600,
'prefix' => 'tp51_',
'serialize' => 'json',
],
],
- 特别注意:
select是整数、password显式声明(空也要写'')、type小写redis;漏掉或写错任一字段,TP 会静默回退到 file 驱动
验证 Redis 是否真实生效
别信配置文件,要用命令行实测读写——这是唯一靠谱的判断方式。
- 在项目根目录执行:
php -r "var_dump(cache('test_key', 'ok', 10));"
应输出string(2) "ok" - 紧接着执行:
php -r "var_dump(cache('test_key'));"
若输出string(2) "ok",说明 Redis 正在工作;若输出NULL,说明仍走 file 驱动,需回头检查扩展或配置 - 进一步确认:登录 Redis 服务器运行
redis-cli keys "tp51_test_key",应能查到该 key
补充说明:不需要额外装 think-redis 包
ThinkPHP 5.1.41 内置了 think\cache\driver\Redis 类,官方 topthink/think-redis 是为 TP6 设计的,**TP5.1 不需要也不兼容该包**。装了反而可能引发冲突或自动注册异常。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











