配置页保存失效?可能是缓存刷新姿势不对
上周给后台加了个简单的系统配置功能,提交表单时明明数据库已经更新,前端死活不显示新值。排查半天才发现是缓存刷新没处理好,这里分享几个实战中遇到的坑:
1. 最容易被忽视的浏览器缓存 - 明明服务器返回了新数据,浏览器却死活不更新。解决方案很简单但总被忘记:在提交请求的URL后面加个时间戳参数,强制跳过缓存。
2. ThinkPHP的配置缓存 - 框架自带的config缓存机制是把双刃剑。修改了database.php这类配置文件后,记得要手动删除runtime下的缓存文件,不然改到天亮都不会生效。
3. 文件锁导致的缓存更新失败 - 遇到过最诡异的情况:宝塔面板修改Nginx配置后,reload时提示"file busy"。后来发现是某个进程占用了.conf文件,用lsof查出来干掉才解决。
现在我的标准操作流程是:改配置->清框架缓存->刷新CDN->检查浏览器Network请求。虽然麻烦点,但再没出现过配置不生效的灵异事件。你们还遇到过什么奇葩的缓存问题?欢迎补充~
最新打赏

