改了模板前台没变化、更新了数据页面还是旧的——十有八九是缓存。苹果CMS 的缓存分三层:页面缓存、数据缓存、模板缓存,各管一段,清理也要对症下药。先记一个通用顺序:改了模板清模板缓存,改了数据清页面与数据缓存。
页面缓存
页面缓存是把渲染好的 HTML 结果存起来,访客请求时直接吐缓存,不再走完整的程序流程。开启后站点扛流量能力明显提升,数据库压力也随之下降,代价是内容更新有延迟:新采集的影片要等缓存过期才出现在前台。后台可以设置缓存时长,影视站的平衡点一般在几十分钟到几小时,太短缓存意义打折,太长更新感知迟钝。设置时长时结合自己的更新节奏:一天多次采集的站缓存设短些,一天一采的站可以拉长,让缓存过期点与采集计划错开,新内容入库后正好赶上缓存刷新。
数据缓存
数据缓存针对的是数据库查询结果,热门分类列表、影片数据这类高频查询被缓存后,数据库压力显著下降。数据量大、并发高的站点建议开启;小站可以不开,避免多一层排障复杂度——缓存层本身就是新的出错点,收益不大时不必引入。
模板缓存
模板缓存是程序把编译后的模板文件存下来,下次直接用编译结果。这层几乎必开,但它带来一个经典现象:你在服务器上改了模板文件,前台纹丝不动——因为程序还在用旧的编译缓存。清掉模板缓存目录即可,目录位置在程序缓存目录下,具体路径对照苹果CMS V10文件夹结构介绍找最快。
清理顺序与建议
给一个实用清单:改完模板,清模板缓存,必要时清页面缓存;采集入库后看不到新内容,清页面缓存;怎么清前台都不变,检查是否还有 CDN 或浏览器缓存在叠加生效,逐层排除。另外,改动模板前先留一份备份,参考备份迁移方案(beifen-qianyi)的习惯,改坏了能立刻还原。日常改动频繁的站点,可以把缓存时长设短一些,改动少的站点相反。缓存与伪静态这类环境配置常常相互影响,对照伪静态方案对比(wjingtai-fangan)检查更稳妥。定位缓存层数有个笨办法:清一层看一次前台,哪层清完页面变了,问题就出在哪层,别凭感觉一次全清,全清会让你失去定位问题的线索。
相关阅读
缓存是性能优化的第一站,但不是全部。程序基础与版本信息可延伸阅读苹果CMS(pingguocms)与苹果CMS V10(maccmsv10)的相关内容。