thinkphp 7.0 推荐用 php think cache:clear 命令清理文件缓存,它精准清除 runtime/cache/ 下缓存文件,保留 log/、temp/ 等目录及 index.html 等保护文件;进阶可配合 find 按前缀或时间筛选删除;长期应迁移到 redis 或 apcu 驱动。

ThinkPHP 7.0 默认使用文件缓存(File 驱动),缓存文件会按模块、控制器、方法等路径生成在 runtime/cache/ 目录下。随着运行时间增长,缓存文件堆积会导致目录臃肿、磁盘占用高,甚至影响 opcache 或 filemtime() 性能判断。
批量删除的核心思路是:不手动删,而用框架自带命令 + 系统工具精准清理,避免误删 log、temp 等其他 runtime 子目录。
✅ 正确做法:用 php think cache:clear 命令清空
TP7.0 内置了标准缓存清理命令,它只清 cache/ 下的缓存文件,不碰 log/、temp/、route/ 等:
php think cache:clear
该命令会:
- 自动识别当前配置的缓存驱动(即使你已切换为 Redis,它也只清文件缓存目录)
- 跳过
.gitignore或index.html等保护文件 - 清理时保留目录结构,不删除
cache/文件夹本身
⚠️ 注意:确保你在项目根目录执行(即
index.php所在层),且 PHP CLI 版本 ≥ 8.1(TP7.0 强制要求)。
✅ 进阶:按前缀或时间批量删(当命令失效或需定制)
如果缓存被手动写入、或混用了自定义路径(如 runtime/my_cache/),可配合系统命令清理:
按文件名前缀删(例如只删 user_ 开头的缓存)
find runtime/cache -type f -name "user_*" -delete
按修改时间删(例如删 7 天前的缓存文件)
find runtime/cache -type f -mtime +7 -delete
安全预览(先看要删哪些,再加 -delete)
find runtime/cache -type f -name "*.php" | head -20
? 提示:TP7.0 的文件缓存默认以
.php后缀保存(含<?php return ... ?>),所以用*.php匹配更准,比*更安全。
❌ 不推荐的做法
- 直接
rm -rf runtime/cache/*:可能误删index.html(防目录遍历)、.gitignore,或清空后导致首次访问报错(因缺少初始化占位文件) - 用
php脚本递归unlink():TP7.0 缓存文件有命名规则(含哈希和模块路径),手动匹配易漏或错删 - 在 Web 请求中调用
Cache::clear():可能超时、权限不足、或触发并发写冲突
? 长期建议:改用非文件缓存驱动
文件缓存适合开发或低流量场景。生产环境建议迁移到:
-
Redis(推荐):速度快、支持 TTL、自动过期,TP7.0 原生支持
redis://127.0.0.1:6379 - APCu(轻量高频读):适合配置类缓存,无需网络开销
修改 config/cache.php 即可切换,迁移后 runtime/cache/ 将自然停止写入。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











