ThinkPHP6中数据缓存与文件缓存路径和机制独立,需区分清理:file驱动才适用删runtime/cache/,redis/memcached须用对应方式清除;php think clear:cache清数据缓存,php think clear -t清模板,php think route:clear清路由,php think clear --temp清编译缓存。

ThinkPHP6项目中数据缓存和文件缓存路径不同、机制独立,不区分清理会导致模板不更新、路由404或数据库查询结果仍走旧缓存——比如你改了SQL但页面还是返回老数据,很可能只清了view/没动cache/。
确认当前用的是哪种缓存驱动
打开 config/cache.php,看 default 配置项和 stores 下对应驱动的 type 值:【type 为 file 才适用本文所有文件级清理操作】。若 type 是 redis 或 memcached,删 runtime/cache/ 文件完全无效,必须走 Redis CLI 或 Cache::store('redis')->clear()。
这一步跳过会白忙:tp6 的 php think clear --all 默认只清 runtime/ 下的目录,对 Redis 缓存无影响;而 Cache::clear() 在未指定 store 时,默认清的是配置里 default 对应的驱动,不是你代码里 Cache::store('redis') 写的那个。
清理数据缓存(runtime/cache/ 及其子目录)
方法一:命令行一键清空(推荐开发环境)
立即学习“PHP免费学习笔记(深入)”;
在项目根目录执行:php think clear:cache。该命令专清 runtime/cache/ 和 runtime/data/,不碰 log/、view/、route/,比 --all 更安全。
方法二:代码中清除(适合控制器或命令行类内触发)
\think\facade\Cache::clear('cache'); —— 注意传参是字符串 'cache',不是空值;传空值会清默认驱动全部缓存,可能误触其他 store。
方法三:手动删文件(仅限单应用 + file 驱动)
进入 runtime/cache/ 目录,执行 rm -rf *。Linux/macOS 下可直接运行:rm -rf runtime/cache/*;Windows 用户需进资源管理器全选删除。⚠️别删 runtime/cache/ 本身,只清里面内容,否则部分驱动初始化失败。
清理文件缓存(含模板、配置、路由等编译产物)
第一步:清模板缓存(runtime/view/)
执行 php think clear -t。tp6.0+ 支持该参数,它会精准定位 config/template.php 中 cache_path 指定的路径,默认为 runtime/view/。如果项目自定义了 cache_path,-t 仍按配置删,不会漏。
第二步:清路由缓存(runtime/route.php)
执行 php think route:clear。这一步不能省——route.php 是 URL 路由映射表,删了它首次访问会慢(重新生成),但不删就可能 404;【php think clear 默认不清理 route.php,这是最常被忽略的环节】。
第三步:清编译缓存(runtime/temp/)
执行 php think clear --temp。temp 目录存着模板编译后的 PHP 文件、配置文件缓存等,改了 config/app.php 后不删它,新配置就不会生效。



















