Appearance
问题现象
在平台管理后台修改了系统配置(如修改了网站名称、积分规则、微信支付参数、分销比例等),点击保存成功后,前台用户端、移动端或接口返回的数据依然是旧配置,未发生变化。
根本原因与排查流程
Swoole 常驻内存与配置缓存机制(核心原因)
- 原理:EBAOZU V4 基于 Swoole 常驻内存架构,系统配置在首次加载后会被缓存到 Redis 及内存中,避免每次请求高频查询数据库。
- 解决:在后台保存配置后,必须重启 Swoole 守护进程(或执行清除缓存命令)以强制刷新内存中的配置单例:bash
# 在终端执行清理缓存 php think clear:cache # 重启守护进程 supervisorctl restart ebaozu_v4
Nginx 反向代理误开启了响应缓存
- 排查:检查站点 Nginx 配置文件中是否开启了
proxy_cache或在可视化宝塔反向代理中误开启了“开启缓存”。 - 解决:确保 Nginx 反向代理配置中包含禁用缓存指令:nginx
add_header Cache-Control no-cache;
多系统 Redis 缓存前缀冲突
- 排查:若同一服务器部署了多套系统,未隔离
.env中的PREFIX和TAG_PREFIX,导致保存的配置被其它系统的旧缓存覆盖。 - 解决:检查
.env文件,确保每套系统的CACHE.PREFIX为独一无二的字符并重启 Swoole。
浏览器端或小程序本地强缓存
- 浏览器用户请按
Ctrl + F5强制刷新。 - 微信小程序端请下拉任务栏删除小程序后重新搜索进入,以清除本地 Storage 缓存。