赞片CMSRedis插件
照着做完,你能给赞片CMS装上 Redis 缓存插件,把首页、列表页、详情页从「每次访问都查数据库」变成「直接读内存」,同时把播放量和点击数改成 Redis 计数,数据库压力明显下降。
第一步:确认环境够用
这一步要做的,是先看你的服务器能不能跑这个插件,不满足就别往下折腾了。SSH 登录服务器,依次执行:
php -v
redis-server -v
php -m | grep redis
要求:PHP 7.4 或 8.0/8.1(赞片CMS 5.x 起不要用 PHP 7.2 以下),Redis 5.0 以上。第三条命令如果没有任何输出,说明 php-redis 扩展没装,后面第三步要补上。
注意:宝塔面板用户请切到「软件商店」确认 PHP 版本和 Redis 版本是同一套环境,很多人装了 Redis 但 PHP 用的是另一个版本的扩展,插件会一直报「连接失败」。
第二步:启动 Redis 并设置密码
这一步要拿到一个能连的 Redis 地址和密码。宝塔面板:软件商店 → 已安装 → Redis → 设置 → 性能配置,把 maxmemory 设为 256MB 或 512MB,maxmemory-policy 选 allkeys-lru(内存满了自动淘汰旧缓存,不会写满宕机)。
命令行安装的话:
systemctl enable redis
systemctl start redis
redis-cli
> config set requirepass 你的密码
> auth 你的密码
改完记得在 /etc/redis.conf 里把 requirepass 你的密码 也写进去,否则重启后密码丢失。
第三步:安装 php-redis 扩展
宝塔:软件商店 → 已安装 → 对应的 PHP 版本 → 设置 → 安装扩展 → 找到 redis → 点「安装」。装完执行 php -m | grep redis,输出 redis 才算成功。
注意:装完扩展必须重启 PHP-FPM(宝塔是「服务」→「重启」),只 reload Nginx 没用。
第四步:上传并安装插件
登录赞片CMS后台(一般是 /admin.php),左侧菜单找到「应用」→「插件管理」→ 顶部「安装插件」标签页,把 Redis 插件压缩包上传,或者直接把插件目录 zanpian_redis 上传到网站根目录的 /application/plugin/ 下,回到后台刷新,插件列表里就会出现「Redis缓存」条目,点右侧「安装」。
安装过程会往数据库插两张表:zanpian_plugin_redis_config(配置)和 zanpian_plugin_redis_log(命中日志),不用手动建。
第五步:填连接参数
插件安装完点「设置」,进入配置页,填写四项:
- 主机地址:
127.0.0.1(Redis 和网站在同一台机器时) - 端口:
6379 - 密码:第二步设的密码,没设就留空
- 数据库序号:
0(和别的程序共用 Redis 时改成 1、2 避免键名冲突)
填完点「测试连接」,页面提示 PONG 或「连接成功」才算通。
注意:配置页还有一项「键名前缀」,默认是
zp_。如果你服务器上跑着两套赞片CMS,务必把其中一套改成别的(比如zp2_),否则两站缓存互相覆盖,会出现 A 站显示 B 站内容。
第六步:打开缓存开关并设过期时间
同一页面下方是缓存规则区,勾选:
- 首页缓存:开启,过期时间
600秒 - 列表页缓存:开启,过期时间
900秒 - 详情页缓存:开启,过期时间
1800秒 - 播放量/点击数走 Redis 计数:开启,每
60秒回写一次数据库
「排除规则」框里填不想缓存的栏目 ID 或 URL 关键词(比如会员中心、搜索页),用英文逗号隔开。搜索页一定要排除,否则搜索结果会串。
保存后点「清空全部缓存」,让新规则立即生效。
第七步:验证是不是真的生效
在服务器上执行:
redis-cli -a 你的密码
> keys zp_*
> info stats
看到一堆 zp_home_、zp_list_ 开头的键,说明缓存写进去了。再打开网站首页刷新两次,第二次看页面底部(或 HTML 注释里)是否出现 Cache: Redis 字样。
对比一下效果:info stats 里的 keyspace_hits 除以 keyspace_hits + keyspace_misses,就是命中率,稳定在 90% 以上算正常。
注意:如果你的站点有会员登录、购物车这类个性化内容,别整个页面缓存,改成只缓存「数据查询层」,插件设置里选「缓存模式:数据缓存」而不是「页面缓存」。
第八步:以后台改内容后缓存不更新的处理
赞片CMS 发布、修改、删除视频时,插件会自动清掉相关键。如果发现改了内容前台还是旧的,进后台「插件管理」→「Redis缓存」→ 点「清空全部缓存」。要自动化的话,可以在服务器的 crontab 里加一条:
0 4 * * * redis-cli -a 你的密码 FLUSHDB
每天凌晨 4 点全清一次,配合前面的过期时间,基本不会出现脏数据。
小结
- 环境三件套:PHP 7.4+、Redis 5.0+、php-redis 扩展,缺一个都白搭。
- Redis 要设
maxmemory和allkeys-lru,防止内存写满后服务挂掉。 - 插件装完重点填好主机、端口、密码、数据库序号、键名前缀这五项。
- 首页 600 秒、列表页 900 秒、详情页 1800 秒是稳妥的起步值,别一上来就设 24 小时。
- 搜索页和会员页面必须排除缓存,多站点共用 Redis 必须改键名前缀。
- 用
keys zp_*和info stats验证,命中率 90% 以上算合格。
原文链接:https://www.gj0.com/thread-716.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。