ThinkPHP5.0.24默认不开启数据缓存,需手动配置驱动(如file或redis)、显式调用Cache::set()/get()或Db::cache(),并确保runtime/cache目录可写或Redis服务可达,最后关闭调试模式验证生效。

ThinkPHP5.0.24 默认不开启数据缓存,需手动配置缓存驱动并启用。重点不是“安装后自动生效”,而是根据实际需求选择缓存类型(如 file、redis),再完成驱动配置、代码调用和权限校验三步。
确认并配置默认缓存驱动
打开 application/config.php,检查或添加 'cache' 配置项:
- 若使用文件缓存(开发/测试环境常用):确保
'type' => 'File',且'path'指向可写的目录,例如:'path' => RUNTIME_PATH . 'cache' . DS,(RUNTIME_PATH 通常为runtime/) - 若使用 Redis(推荐生产环境):需先确认 PHP 已启用 redis 扩展,并在配置中写明连接参数:
'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'select' => 0 - 确保
'default' => 'file'(或'redis')与 stores 中定义的驱动名一致
在代码中主动使用缓存读写
TP5.0.24 不会自动缓存数据库查询结果,必须显式调用 Cache::set() 和 Cache::get():
- 缓存单条数据:
Cache::set('user_123', $userInfo, 3600); // 缓存1小时 - 缓存查询结果(推荐配合
cache()方法):$list = Db::name('article')->where('status', 1)->cache(true, 1800)->select();
该方式会在 30 分钟内复用相同 SQL 的查询结果,无需手动构造 key - 读取时先判断是否存在:
$data = Cache::get('user_123'); if (false === $data) { /* 重新查库并 set */ }
验证缓存是否生效
关键检查点:
立即学习“PHP免费学习笔记(深入)”;
- runtime/cache/ 目录(file 驱动)必须存在且 Web 服务器用户有写权限;Redis 驱动需确保服务运行、端口可达、密码正确
- 执行一次缓存写入后,查看
runtime/cache/下是否生成了对应 key 的 PHP 文件(如user_123.php),内容为序列化数组 - 关闭调试模式(
'app_debug' => false),避免缓存被绕过 - 注意:缓存 key 不支持点号(.)、斜杠(/)等特殊字符,建议用下划线或英文数字组合
可选:生成全局配置缓存提升性能
运行命令行一次性预编译配置,减少每次请求的解析开销:
- 在项目根目录执行:
php think optimize:config - 该命令会把所有 config/*.php 合并写入
runtime/cache/config.php,后续直接加载此文件 - 注意:修改配置后需重新执行该命令,否则新配置不生效



















