thinkphp5缓存配置必须单独写在config/cache.php中,因为tp5.0/5.1已移除从app.php读取cache配置的能力,硬编码cache::connect()仅临时生效且不被模型、查询缓存等内部机制识别。

ThinkPHP 5 的缓存配置必须单独写在 config/cache.php 文件中,不能放在 config/app.php 或其他配置文件里。
为什么只能是 config/cache.php
TP5.0 和 TP5.1 已移除从 app.php 读取 cache 配置的能力。硬编码调用 Cache::connect() 只是临时生效,模型查询缓存、自动缓存等内部机制完全无法识别它。
正确做法是:在项目 config/ 目录下新建一个 cache.php 文件,返回一个标准 PHP 数组,例如:
-
'default' => 'file'(指定默认驱动) 'stores' => ['file' => ['type' => 'File', 'path' => RUNTIME_PATH . 'cache/']]- 若用 Redis,则
'stores' => ['redis' => ['type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379]]
常见错误位置
很多人误把缓存配置写在这些地方,结果缓存完全不生效:
-
config/app.php—— TP5 不再支持 -
application/config.php(旧版 TP3 路径)—— 框架已忽略 -
.env—— 环境变量不能替代缓存驱动配置,仅适合 DB_HOST、APP_DEBUG 等简单值
验证是否生效的小技巧
运行以下命令测试缓存是否真正启用:
-
php -r "var_dump(cache('test', 'ok', 60));"—— 应输出string(2) "ok" -
php -r "var_dump(cache('test'));"—— 第二次应仍输出"ok",否则说明配置未生效或 fallback 到空实现
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











