ThinkPHP6缓存清理需先确认缓存驱动类型:若为file则清理runtime/cache/目录,但不可误删log/temp/route等关键子目录;多应用模式下需清理runtime/*/cache/;标签缓存仅file和redis支持,可调用Cache::tag()->clear();命令行推荐php think clear --all及redis-cli按前缀删除。

ThinkPHP6项目运行一段时间后,runtime/cache/目录下堆积大量缓存文件,导致服务器磁盘空间告急,必须立即批量清理,且不能误删日志、模板、路由等关键缓存目录。
确认当前缓存驱动类型
打开 config/cache.php,查看 default 配置项值;若为 file,则缓存写在磁盘上,需重点清理 runtime/cache/;若为 redis 或 memcached,则磁盘占用与缓存无关,应排查其他原因——【跳过后续磁盘清理步骤】。
检查 stores 数组中对应驱动的 path 参数:若自定义了 cache 路径(如 '/data/think_cache'),则实际缓存不在 runtime/cache/ 下,直接删 runtime/cache/ 无效。
安全清空 runtime/cache/ 下所有文件缓存
进入项目根目录,执行以下命令:
立即学习“PHP免费学习笔记(深入)”;
rm -rf runtime/cache/*
这一步只清空 cache/ 目录下的内容,保留 runtime/log/、runtime/temp/、runtime/route/ 等子目录。别用 rm -rf runtime/* ——会删掉日志和配置缓存,导致首次访问报 Class not found 或 404。
如果是多应用模式(如 app/admin 和 app/api),缓存路径可能是 runtime/admin/cache/ 和 runtime/api/cache/,此时执行:
rm -rf runtime/*/cache/*
清除带标签(tag)的缓存数据
方法一:在控制器或命令行中执行 PHP 代码
use think\facade\Cache;
Cache::tag('user')->clear(); // 清空所有打上 'user' 标签的缓存
Cache::tag(['order', 'payment'])->clear(); // 同时清除多个标签关联的缓存
【注意】只有 file 和 redis 驱动支持 tag,apc 或 xcache 驱动调用此方法无效
方法二:批量清除全部标签缓存(慎用)
遍历所有已注册标签名,逐个调用 clear();但 ThinkPHP 不提供内置接口列出全部标签,需自行维护标签清单或通过 Redis KEYS think_cache:tag:* 查询前缀(仅限 redis 驱动)。
用命令行强制清空所有缓存类型
第一步:清运行时缓存(含 cache/、log/、temp/ 中的部分内容)
php think clear --all
第二步:单独清理模板缓存(它不在 runtime/cache/,而在 runtime/view/)
php think clear -t
第三步:若使用 Redis 驱动且确认无其他业务共用同一 Redis 实例,执行:
redis-cli -a "your_password" --raw keys "think_cache:*" | xargs redis-cli -a "your_password" del
这比 FLUSHDB 安全,只删 ThinkPHP 缓存前缀键,不碰其他业务数据。



















