清空thinkphp缓存前必须确认缓存驱动类型及配置;file驱动需清理runtime/cache/各子目录,redis驱动应按前缀(如think_cache:*)安全删除,标签缓存须用cache::tag('xxx')->clear()清除。

thinkphp 清空全部缓存前先确认 cache 驱动类型
ThinkPHP 的 cache() 函数行为、缓存路径、清理方式,完全取决于当前配置的缓存驱动。不看配置直接执行清理命令,大概率只清了部分缓存,甚至什么都没清掉。
常见驱动有 file、redis、memcached、apc 等,其中 file 是默认驱动,但项目上线后基本都会切到 redis。必须先查 config/cache.php 或环境配置里的 default 和 stores 设置。
- 如果是
file驱动:缓存文件散落在runtime/cache/下各子目录,不能只删根目录 - 如果是
redis驱动:所有缓存都在 Redis 里,但 ThinkPHP 默认用前缀(如think_cache:),直接FLUSHDB会误删其他业务数据 - 如果用了
tag缓存(比如cache('key', $val, ['tag' => 'user'])),普通清除方式根本无效,必须走标签清理接口
tp6/tp7 中用 cache() 函数批量清空指定 tag 缓存
ThinkPHP 从 TP6 开始强化了缓存标签(tag)支持,但很多人写了 cache('key', $val, ['tag' => 'list']) 却不知道怎么按 tag 清除——cache(null) 或 cache('key', null) 都不管用。
正确做法是调用缓存实例的 tag() 方法再清除:
use think\facade\Cache;
Cache::tag('list')->clear(); // 清空所有打上 'list' 标签的缓存
-
Cache::tag('user')->set('profile', $data, 3600)写入带标签缓存 -
Cache::tag('user')->get('profile')只能读该标签下的 key,隔离性好 - 多个标签可同时绑定:
Cache::tag(['user', 'v2'])->set(...),清除时任意一个 tag 被清,该条缓存就失效 - 注意:只有
file和redis驱动支持 tag,apc和xcache不支持
命令行快速清空 runtime/cache/ 下所有 file 缓存
当确定使用的是 file 驱动,且想彻底清空所有缓存文件(包括模板缓存、路由缓存、日志缓存等),别手动进目录删,容易漏或误删 temp 或 log。
TP 自带的命令行指令最稳妥:
php think clear --all
- 这个命令会清空
runtime/下所有子目录(cache/、log/、temp/、route/等),不只是缓存 - 如果只想清缓存,用
php think clear:cache(TP6.1+ 支持),它只清runtime/cache/和runtime/data/ - Linux/macOS 下也可直接
rm -rf runtime/cache/*,但要注意cache/下可能有隐藏的.gitignore或权限保护目录,删完记得检查是否重建成功
redis 驱动下安全清除 thinkphp 缓存不伤其他业务
Redis 里不止有 ThinkPHP 的缓存,还有 session、队列、第三方 SDK 数据。直接 FLUSHDB 或 FLUSHALL 是高危操作,线上禁止。
ThinkPHP 默认给所有缓存 key 加前缀,通常是 think_cache:(可查 config/cache.php 中 prefix 配置)。安全清理方式是按前缀扫描 + 删除:
redis-cli --scan --pattern "think_cache:*" | xargs redis-cli del
- 这条命令只删匹配
think_cache:开头的 key,不影响其他业务 - 如果自定义了前缀(如
myapp_cache:),把上面命令里的字符串换掉即可 - TP6.3+ 支持在配置中设置
serialize为false,此时缓存值是明文,方便 debug;设为true(默认)则值是序列化字符串,不影响删除逻辑 - 注意:Redis Cluster 模式下,
--scan不可用,得改用脚本逐个节点执行
缓存清理最麻烦的从来不是命令本身,而是你不确定它到底存在哪、有没有被 tag 隔离、前缀对不对、驱动是不是和配置一致。每次清理前花 30 秒看一眼 config/cache.php 和 env 文件,比事后排查快得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










