thinkphp 5.1.41 默认不启用 redis,需先安装并启用 php redis 扩展,再配置 cache.php 使用 complex 类型及 redis 子配置,最后通过 cache::store('redis') 调用;验证可通过 set/get 和 redis 终端 keys tp51:* 检查。

ThinkPHP 5.1.41 默认不启用 Redis,但支持通过配置切换缓存驱动。要让它真正用上 Redis,核心是两步:装好 PHP 的 Redis 扩展,再改对框架的缓存配置。
✅ 确认 PHP 已启用 redis 扩展
在命令行运行:
php -m | grep redis
如果没输出,说明扩展未启用。需检查:
-
php.ini中是否已取消注释extension=redis(Windows 下是php_redis.dll,Linux 下是redis.so) - 扩展文件是否真实存在于
extension_dir指定路径下 - 重启 Web 服务(如 Apache/Nginx)和 PHP-FPM(如使用)
⚠️ 注意:仅安装 Redis 服务端(如
redis-server)不够,PHP 进程必须能调用Redis类,这依赖 PHP 扩展。
✅ 配置 TP5.1 使用 Redis 缓存
修改 config/cache.php,将缓存类型设为 complex,并定义 redis 子配置:
return [
'type' => 'complex',
'default' => [
'type' => 'file',
'expire' => 0,
'prefix' => 'think:',
'path' => '../runtime/cache/',
],
'redis' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '', // 如有密码请填写
'prefix' => 'tp51:',
'timeout'=> 0,
'expire' => 3600,
],
];
?
prefix建议加项目标识(如tp51:),避免多个应用共用 Redis 时键名冲突;timeout设为0表示永不超时连接,适合内网稳定环境。
✅ 在代码中调用 Redis 缓存
直接指定 store 名称即可,无需改全局默认:
// 写入
Cache::store('redis')->set('user_1001', ['name' => '张三', 'level' => 5], 3600);
// 读取
$data = Cache::store('redis')->get('user_1001');
// 删除
Cache::store('redis')->delete('user_1001');
所有缓存方法(inc、dec、remember 等)都可用,行为与 file 缓存一致,只是底层换成了 Redis。
✅ 验证是否生效
加一段测试路由或命令行脚本:
public function testRedis()
{
$result = Cache::store('redis')->set('test_key', 'hello_redis', 60);
dump($result); // true 表示写入成功
dump(Cache::store('redis')->get('test_key')); // 应输出 'hello_redis'
}
同时可登录 Redis 终端执行 keys tp51:* 查看是否有键生成。
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











