thinkphp 8.0手动清除缓存需按类型精准操作:路由用php think clear:route并确保app_debug=false;配置需rm -f runtime/config.php后执行php think config:clear;驱动级缓存php think clear --all不清理模板、模型等,模板须加-t参数,模型字段缓存需db::clearcache(),查询缓存无命令行入口。

ThinkPHP 8.0 手动清除缓存不能只删文件,得看清楚清的是哪一类——路由、配置、模板、模型查询还是驱动级缓存,不同缓存类型对应不同清理逻辑和风险点。
一、清路由缓存:改了路由却没生效?
最常见问题是修改了 route.php 或注解路由后仍走旧规则。关键不是删文件,而是用命令精准清理:
- 执行
php think clear:route—— 它会删除runtime/cache/route.php及所有关联临时文件,比rm -f runtime/route.php更安全 - 确认
APP_DEBUG=false(检查config/app.php和.env),否则route:cache不生效 - 重建缓存:执行
php think route:cache --annotation(如使用注解路由)
二、清配置缓存:改了 .env 却不生效?
环境变量或 config/*.php 修改后,框架可能还在读旧缓存:
- 先删缓存文件:
rm -f runtime/config.php - 再执行
php think config:clear—— 这步不仅删文件,还会重置容器内缓存实例 - 验证是否清干净:
ls -la runtime/ | grep config,确认无残留
三、清驱动级缓存(如 file/Redis)
php think clear --all 只清「驱动级」缓存,比如 runtime/cache/ 下的文件或 Redis 中带 prefix 的 key:
- 它 不会 清模板缓存(需加
-t参数)、模型查询缓存、字段结构缓存(\think\facade\Db::clearCache())、自定义 store(如Cache::store('my_redis')) - 若用了 Redis,建议手动进 CLI 执行
flushdb(开发环境)或scan 0 match "think_*" count 1000+del(生产环境) - 更稳妥的做法:临时把
config/cache.php中default改成'null',重启服务验证是否是缓存导致的问题
四、清模板与模型缓存:容易被忽略的两类
这两类缓存不走 clear --all,必须单独处理:
- 模板编译缓存路径在
runtime/view/,清它要加-t:执行php think clear -t - 模型字段结构缓存存在
runtime/schema/或runtime/temp/,需调用\think\facade\Db::clearCache() - 模型查询缓存(如
UserModel::where()->cache(true)->select())没有命令行入口,只能删runtime/cache/对应 key 文件,或改代码临时禁用->cache()
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











