配置页保存失效?可能是缓存刷新姿势不对

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
站长杂谈 62 浏览 9 回复

上周给后台加了个简单的系统配置功能,提交表单时明明数据库已经更新,前端死活不显示新值。排查半天才发现是缓存刷新没处理好,这里分享几个实战中遇到的坑:

1. 最容易被忽视的浏览器缓存 - 明明服务器返回了新数据,浏览器却死活不更新。解决方案很简单但总被忘记:在提交请求的URL后面加个时间戳参数,强制跳过缓存。

2. ThinkPHP的配置缓存 - 框架自带的config缓存机制是把双刃剑。修改了database.php这类配置文件后,记得要手动删除runtime下的缓存文件,不然改到天亮都不会生效。

3. 文件锁导致的缓存更新失败 - 遇到过最诡异的情况:宝塔面板修改Nginx配置后,reload时提示"file busy"。后来发现是某个进程占用了.conf文件,用lsof查出来干掉才解决。

现在我的标准操作流程是:改配置->清框架缓存->刷新CDN->检查浏览器Network请求。虽然麻烦点,但再没出现过配置不生效的灵异事件。你们还遇到过什么奇葩的缓存问题?欢迎补充~

评论9
回复 · 9
AmberYang
AmberYang 新手璃梦花海 · #9 ·
感谢分享!
杨涛
杨涛 新手 · #8 ·
同求,期待更新
发光的海盐
发光的海盐 初级 · #7 ·
已解决,谢谢楼主
NorthWind
NorthWind 新手 · #6 ·
已解决,谢谢楼主
HelenLin
HelenLin 初级赤羽栖云 · #5 ·
写得很清楚,收藏了
RiverStone
RiverStone 初级心屿荧途 · #4 ·
写得很清楚,收藏了
Drew
Drew 新手虹翼巡游 · #3 ·
支持了~
倔强的月亮
倔强的月亮 新手赏金猎人 · #2 ·
学到了,顶一下
MayaPark
MayaPark 初级 · #1 ·
感谢分享!
微信客服 微信客服