缓存怎么清、缓存名怎么改

四种清缓存的方法(后台按钮、命令行、直接删目录、Redis 删键),以及缓存名在哪改、什么时候必须改。

约 5 分钟 上线 代码块右上角可一键复制
本页目录(5 分钟读完)

作用:改了东西不生效时,照这一章做。

出错 → 看 排错手册。

先看清哪个#

站里有四种缓存,别清错对象:

缓存存在哪是什么
模板编译缓存runtime/compile/view/模板转成的 PHP
数据缓存runtime/cache/ 或 Redis站点设置、列表结果
语言包缓存runtime/compile/lang/翻译
钩子 / 路由缓存runtime/compile/hooks.php、routes.php插件与网址清单

方法一:后台点按钮(最省事)#

  1. 登录后台
  2. 左侧点「缓存」
  3. 点「清理缓存」
  4. 看到成功提示就完了

看不到变化 → 再刷新一次页面(用无痕窗口排浏览器缓存)。


方法二:命令行(推荐)#

  1. 用 SSH 进站点根目录
  2. 复制下面两行
  3. 依次执行
Shell
php aucms cache:clear
php aucms cache:rebuild
命令干什么什么时候用
cache:clear清空运行时缓存改了设置不生效
cache:rebuild重建编译缓存部署、搬家、改了 PHP 文件

两个都跑一遍最稳。

⚠️ 跑完必须改属主#

用 root 跑 rebuild,新建的缓存文件属主会变成 root, 网站进程(www)写不进去 → 整页 500。

Shell
chown -R www:www runtime

顺序不能反:先 rebuild,再 chown。


方法三:直接删目录#

作用:命令行都跑不动时(比如 PHP 起不来)用它。

Shell
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

删完刷新页面,会自动重建。

别删这两个:

code
runtime/upload/      ← 上传的附件,删了图片全裂
data/                ← 密钥和配置,删了站就废了

后台进不去时,删 runtime/session/ 会强制所有人重新登录,这是正常的。


方法四:用了 Redis 怎么清#

命令行和后台都清不到 Redis 时(常见于命令行 PHP 没装 redis 扩展),手动删。

看一眼现在有多少键:

Shell
redis-cli dbsize
redis-cli --scan --pattern '你的前缀:*' | head -20

按前缀删(推荐,只删本站的):

Shell
redis-cli --scan --pattern '你的前缀:*' | xargs -r redis-cli del

整个库只给这一个站用 → 直接清库:

Shell
redis-cli -n 0 flushdb

清完不用重启,下次访问自动重建。


怎么改缓存名#

作用:同服务器跑多个站时,给每个站的缓存起不同的名字,防止串数据。

缓存名就是键前缀,写在 config/cache.php 里:

PHP
'prefix' => 'aucms:',

或者写在 data/site.config.php(这一份优先级更高):

PHP
'cache' => array(
    'prefix' => 'cczx15com:',
),

默认是怎么来的#

没手动指定的话,系统按域名自动推:

域名推导出的前缀
cc.zx15.comcczx15com:
xue.zx15.comxuezx15com:
127.0.0.1:88901270018890:

规则:全小写 → 去掉端口 → 只留字母数字 → 超 24 字截断 → 末尾加冒号。

注意:写死 'aucms:' 等于"没指定",照样会被自动推导覆盖。 想固定一个名字,就改成别的字符串。

什么时候必须改#

情况要不要改
一台服务器只跑一个站不用管
多台服务器各跑各的不用管
一台服务器跑多个站,共用一个 Redis必须改,每个站一个名字

不改的话,几个站的 setting:all 会互相覆盖, 表现为"改了 A 站设置,B 站内容跟着变"。

改完记得删旧键#

改了前缀,旧名字的键不会自动消失, 会一直占着内存直到过期(设置类最长 24 小时):

Shell
redis-cli --scan --pattern '旧前缀:*' | xargs -r redis-cli del

清完还不对怎么办#

按顺序来,别跳步:

  1. 无痕窗口打开(排浏览器缓存)
  2. php aucms cache:clear
  3. php aucms cache:rebuild
  4. chown -R www:www runtime
  5. 有 Redis → 按前缀删键
  6. 用了 Swoole 常驻 → 重启 worker
  7. 还不行 → 看 排错手册

相关章节#

没找到答案? 在后台「缓存与维护 → 系统体检」里看环境是否正常;仍无解就打开 server_debug.php 复现一次,页面会直接告诉你异常文件与行号。