缓存怎么清、缓存名怎么改
四种清缓存的方法(后台按钮、命令行、直接删目录、Redis 删键),以及缓存名在哪改、什么时候必须改。
约 5 分钟
上线
代码块右上角可一键复制
本页目录(5 分钟读完)
作用:改了东西不生效时,照这一章做。
出错 → 看 排错手册。
先看清哪个#
站里有四种缓存,别清错对象:
| 缓存 | 存在哪 | 是什么 |
|---|---|---|
| 模板编译缓存 | runtime/compile/view/ | 模板转成的 PHP |
| 数据缓存 | runtime/cache/ 或 Redis | 站点设置、列表结果 |
| 语言包缓存 | runtime/compile/lang/ | 翻译 |
| 钩子 / 路由缓存 | runtime/compile/hooks.php、routes.php | 插件与网址清单 |
方法一:后台点按钮(最省事)#
- 登录后台
- 左侧点「缓存」
- 点「清理缓存」
- 看到成功提示就完了
看不到变化 → 再刷新一次页面(用无痕窗口排浏览器缓存)。
方法二:命令行(推荐)#
- 用 SSH 进站点根目录
- 复制下面两行
- 依次执行
php aucms cache:clear
php aucms cache:rebuild| 命令 | 干什么 | 什么时候用 |
|---|---|---|
cache:clear | 清空运行时缓存 | 改了设置不生效 |
cache:rebuild | 重建编译缓存 | 部署、搬家、改了 PHP 文件 |
两个都跑一遍最稳。
⚠️ 跑完必须改属主#
用 root 跑 rebuild,新建的缓存文件属主会变成 root, 网站进程(www)写不进去 → 整页 500。
chown -R www:www runtime顺序不能反:先 rebuild,再 chown。
方法三:直接删目录#
作用:命令行都跑不动时(比如 PHP 起不来)用它。
cd /www/wwwroot/example.com
rm -rf runtime/cache/*
rm -rf runtime/compile/view/*
rm -rf runtime/compile/lang/*
rm -f runtime/compile/classmap.php runtime/compile/hooks.php runtime/compile/routes.php
chown -R www:www runtime删完刷新页面,会自动重建。
别删这两个:
runtime/upload/ ← 上传的附件,删了图片全裂
data/ ← 密钥和配置,删了站就废了后台进不去时,删 runtime/session/ 会强制所有人重新登录,这是正常的。
方法四:用了 Redis 怎么清#
命令行和后台都清不到 Redis 时(常见于命令行 PHP 没装 redis 扩展),手动删。
看一眼现在有多少键:
redis-cli dbsize
redis-cli --scan --pattern '你的前缀:*' | head -20按前缀删(推荐,只删本站的):
redis-cli --scan --pattern '你的前缀:*' | xargs -r redis-cli del整个库只给这一个站用 → 直接清库:
redis-cli -n 0 flushdb清完不用重启,下次访问自动重建。
怎么改缓存名#
作用:同服务器跑多个站时,给每个站的缓存起不同的名字,防止串数据。
缓存名就是键前缀,写在 config/cache.php 里:
'prefix' => 'aucms:',或者写在 data/site.config.php(这一份优先级更高):
'cache' => array(
'prefix' => 'cczx15com:',
),默认是怎么来的#
没手动指定的话,系统按域名自动推:
| 域名 | 推导出的前缀 |
|---|---|
cc.zx15.com | cczx15com: |
xue.zx15.com | xuezx15com: |
127.0.0.1:8890 | 1270018890: |
规则:全小写 → 去掉端口 → 只留字母数字 → 超 24 字截断 → 末尾加冒号。
注意:写死 'aucms:' 等于"没指定",照样会被自动推导覆盖。
想固定一个名字,就改成别的字符串。
什么时候必须改#
| 情况 | 要不要改 |
|---|---|
| 一台服务器只跑一个站 | 不用管 |
| 多台服务器各跑各的 | 不用管 |
| 一台服务器跑多个站,共用一个 Redis | 必须改,每个站一个名字 |
不改的话,几个站的 setting:all 会互相覆盖,
表现为"改了 A 站设置,B 站内容跟着变"。
改完记得删旧键#
改了前缀,旧名字的键不会自动消失, 会一直占着内存直到过期(设置类最长 24 小时):
redis-cli --scan --pattern '旧前缀:*' | xargs -r redis-cli del清完还不对怎么办#
按顺序来,别跳步:
- 无痕窗口打开(排浏览器缓存)
php aucms cache:clearphp aucms cache:rebuildchown -R www:www runtime- 有 Redis → 按前缀删键
- 用了 Swoole 常驻 → 重启 worker
- 还不行 → 看 排错手册
相关章节#
没找到答案?
在后台「缓存与维护 → 系统体检」里看环境是否正常;仍无解就打开
server_debug.php 复现一次,页面会直接告诉你异常文件与行号。