QQ登录
只需一步,快速开始
 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 15|回复: 0

Discuz 改了设置就是不生效:后来才知道缓存有三层

[复制链接]

8

主题

5

回帖

2474

积分

金牌会员

积分
2474
发表于 昨天 14:51 | 显示全部楼层 |阅读模式
Discuz 改了设置就是不生效,后来才知道缓存有三层

给论坛开了套金币体系,改了几处设置,前台就是不变化——刷新到手酸,跟没改一样。那阵子我一度怀疑是浏览器在骗我,无痕模式也试了。

后来才发现,Discuz 的设置缓存根本不是「一个缓存」,它其实分三层:

· 数据库 pre_common_syscache 表 —— 这是真身,设置序列化后存在这(ctype=1 那种);
· Redis 镜像 —— 前端读设置,读的往往是 Redis 那份;
· filecache 文件缓存 —— 还有一份落盘的影子。

我一开始干的蠢事是:直接去删 Redis。删完一看,设置还是旧的。原因也简单——表里那份旧快照会把它回填回去。你删的只是三处里的一处,另外两处转眼就把旧值端回来,于是「改了跟没改一样」。



正解不是手动删哪一处,而是走
  1. updatecache('setting')
复制代码
把设置重建一遍,三层一次性对齐,前台才真的变过来。

顺带一个更阴的坑

重建脚本如果你不在站点根目录、而是站在某个子目录里跑,它会照当前路径把 siteurl 拼成「域名/子目录」——结果全站图标和静态资源一起 404,首页像被拆了骨架。站没错,是脚本站错了地方。

复盘两句话:

· 缓存删了一处,另外两处会把旧值端回来——要清就整体重建,别单点下手;
· 会读写站点路径的脚本,站在哪个目录里跑结果不一样,动手前先 cd 到站点根。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|七亿社区站长论坛

GMT+8, 2026-10-20 19:19 , Processed in 0.255459 second(s), 5 queries , Redis On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表