thinkphp 5.0 缓存清理需分三类操作:模板缓存清 runtime/template/ 下 .php 文件;运行时缓存调用 cache::clear();日志缓存删除 runtime/log/ 文件并可选移除空目录。

没有真正意义上的“一键”按钮,但有几条高效、可控、不伤业务的清理路径,关键在于分清缓存类型再精准操作。
按类型区分:模板缓存、运行时缓存、日志缓存各走各的路
ThinkPHP 5.0 的缓存不是铁板一块,主要分三类,清理方式完全不同:
- 模板缓存(runtime/template/):由模板引擎生成,比如编译后的 .php 文件。直接清空该目录下所有 .php 文件即可,不影响 cache 目录结构。
-
运行时缓存(runtime/cache/):由
Cache::set()写入,受驱动控制(File/Redis 等)。用Cache::clear()最稳妥,它会调用当前驱动的清除逻辑,兼容所有缓存类型。 -
日志缓存(runtime/log/):本质是日志文件,不是严格意义的“缓存”,但常被一并清理。删掉 log 目录下的文件即可;若需连空目录也删,再补一句
rmdir()判断。
写个控制器方法,点一下就清干净
在后台加一个缓存清理入口,比手动删文件更安全、可追溯。例如在 app\cache\controller\Index.php 中写:
-
clear_sys_cache():调用Cache::clear(),清空所有运行时缓存; -
clear_temp_cache():用glob(TEMP_PATH . '*.php')批量删除模板编译文件; -
clear_log_cache():遍历LOG_PATH删除日志文件,再检查是否为空目录并移除。
每个方法执行后返回 success 提示,避免误操作无反馈。
命令行快速清理(适合部署或调试)
TP5.0 自带命令行支持,可自定义一个 php think clear:cache 命令:
- 内部调用
Cache::clear()清运行时缓存; - 用
Filesystem::deleteDir(TEMP_PATH)清模板目录(注意先重建空 TEMP_PATH); - 用
Filesystem::clean(LOG_PATH)清日志目录。
比进服务器翻目录快得多,还能集成到 CI/CD 流程里自动执行。
Redis 缓存要单独处理
如果项目已切 Redis 驱动,Cache::clear() 依然有效——它会调用 Redis 驱动的 clear() 方法,执行 FLUSHDB 或带前缀的 KEYS + DEL。前提是配置正确:
-
'type' => 'redis'(必须小写); -
'prefix' => 'think:'建议设好,方便后期按前缀清理; - 确保 phpredis 扩展已启用,且
Cache::get()能正常读写。
不依赖框架时,也可直接用 redis-cli -a yourpass FLUSHDB,但不如框架方法安全(可能误清其他业务数据)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











