苹果CMS 如何开启Redis缓存?缓存配置?

juming
juming 正式会员超兽战士
发布于 2026-10-07 03:20 ·2 浏览 ·0 回复

照着做完,你能让苹果CMS V10 的缓存从「文件缓存」切到 Redis,页面和数据查询明显变快,并且知道怎么验证、怎么回滚。

第一步:确认 Redis 服务在跑

这一步的目标是确认服务器上已经装了 Redis 并且能响应,否则后面改完配置网站会直接报错打不开。

在 SSH 里执行:

redis-cli ping

返回 PONG 就说明服务正常。如果提示 command not found,说明 Redis 还没装。宝塔面板用户走:软件商店 → 搜索「Redis」→ 安装 → 安装完在「软件商店 → 已安装」里点 Redis 的「设置」,把「性能调整」保持默认即可。

注意:宝塔装的 Redis 默认 bind 127.0.0.1、requirepass 为空。如果你的 Web 服务器和 Redis 不在同一台机器,需要改配置文件 /www/server/redis/redis.conf 里的 bind 和 requirepass,改完 systemctl restart redis,同时放行安全组 6379 端口。

第二步:给 PHP 装 redis 扩展

这一步的目标是让 PHP 能连 Redis。苹果CMS 走的是 ThinkPHP 5.1 的 redis 驱动,底层依赖 phpredis 扩展,不是靠 redis 命令行。

宝塔面板操作:软件商店 → 已安装 → 找到你网站正在用的 PHP 版本(比如 PHP 7.4)→ 点「设置」→ 左侧「安装扩展」→ 找到 redis → 点「安装」→ 装完回到「服务」页点「重启」。

命令行验证:

php -m | grep redis

能输出 redis 就成功了。没输出就说明扩展没装上,别急着改配置。

注意:苹果CMS V10 官方推荐 PHP 7.0~7.4,PHP 8.x 部分老版本模板和插件会报错。如果你用的是 PHP 8,先确认站点本身能正常打开再动缓存。

第三步:修改 cache 配置

这一步的目标是把缓存驱动从 File 换成 redis,做完后所有 Cache:: 调用都会走 Redis。

用编辑器打开网站根目录下的:

application/config.php

搜索 'cache',你会看到默认配置:

'cache' => [
    'type'   => 'File',
    'path'   => CACHE_PATH,
    'prefix' => '',
    'expire' => 0,
],

把整段替换为:

'cache' => [
    'type'       => 'redis',
    'host'       => '127.0.0.1',
    'port'       => 6379,
    'password'   => '',
    'select'     => 0,
    'timeout'    => 0,
    'expire'     => 0,
    'persistent' => false,
    'prefix'     => 'maccms:',
],

参数说明:host 填 Redis 地址,password 有密码就填上(没有留空字符串),select 是第几个数据库(0~15),prefix 是键前缀。

注意:同一台 Redis 上如果跑着多个站点或多个项目,prefix 一定要改得各不相同,比如 maccms_a:、maccms_b:,否则不同站点的缓存会互相覆盖,出现「首页显示别的站内容」这种诡异问题。

第四步:清掉旧缓存并验证

这一步的目标是避免旧的文件缓存和新的 Redis 缓存打架。

先删文件缓存目录,SSH 执行:

rm -rf runtime/cache/*

或者走后台:登录后台 → 左侧菜单「系统」→「缓存管理」→ 点「清除缓存」按钮。苹果CMS V10 后台没有缓存驱动的开关,这里只是清缓存的入口,换驱动还是靠第三步的配置文件。

然后刷新网站首页几次,再执行:

redis-cli
> select 0
> keys 'maccms:*'

能看到一堆键就说明生效了。看不到键的话,检查 select 的库号是否和你查询的一致,以及配置文件是否保存成功。

第五步:出问题怎么回滚

如果改完网站 502 或提示 connection refused,说明 PHP 连不上 Redis。最快的处理方式是把 application/config.php 里的 'type' => 'redis' 改回 'type' => 'File',同时把 'path' => CACHE_PATH, 加回去,再执行一次 rm -rf runtime/cache/*,网站立刻恢复。

注意:Redis 一旦挂掉,网站会直接打不开,不像文件缓存那样还能降级。生产环境建议给 Redis 配上 appendonly yes 持久化,并加个进程监控(宝塔的「监控」或 systemd 自带的重启机制)。另外,苹果CMS 的采集模块、部分插件内部是写死用 File 缓存的,这部分流量不会走 Redis,属于正常现象。

小结

  • Redis 生效的三个前提:Redis 服务在跑、PHP 装了 redis 扩展、application/config.php 里 cache 的 type 改成 redis。
  • 关键参数是 host、port、password、select、prefix,多站点共用时必须区分 prefix。
  • 改完配置一定要清 runtime/cache/ 和后台缓存,否则会读到旧数据。
  • 验证方式是 redis-cli 里 keys 'maccms:*',看得到键才算成功。
  • 出问题就把 type 改回 File,这是最稳的回滚方案。
版权声明:本文来自 GJ论坛《苹果CMS 如何开启Redis缓存?缓存配置?》
原文链接:https://www.gj0.com/thread-43.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~