缓存体系设计:三道缓存层的分工与联动
浏览器、CDN、服务端三层缓存各管一段,联动设计让更新与速度兼得。
缓存是性能的杠杆,也是更新的敌人。三层设计让两者和平共处。
第一层:浏览器缓存
静态资源用内容哈希命名,配一年强缓存:文件变内容就变,名字变链接就变,用户自动拿新版。这套机制让永不过期与即时更新同时成立。
第二层:CDN缓存
按路径规则分层:静态资源边缘长缓存,页面类短缓存。关键在失效联动:发布系统调CDN刷新接口,发布完成等于缓存更新。
第三层:服务端缓存
动态页面的渲染结果与数据库查询结果缓存,按业务更新频率设置过期。内容更新主动清对应缓存键,不依赖时间过期。
联动的设计原则
原则一:失效链路完整,内容从发布到三层缓存全部刷新,任何一层断链就会出现新旧混杂;原则二:缓存键设计包含版本维度,结构变更时一键切换新键空间;原则三:命中率可观测,每层的命中率都有报表,低于预期就查规则。
验收方法
发布一篇内容,立刻访问能见新,静态资源加载全命中缓存。两件事同时成立,缓存体系才算合格。