刷新缓存的四种方式,代价差很多
按 URL 刷、按目录刷、按标签刷、全站刷——生效速度和对命中率的破坏程度完全不同。全站刷新往往是最坏的选择。
7 分钟缓存与命中

要点
能按标签刷就不要按目录刷,能按目录刷就不要全站刷。全站刷新会让所有节点同时回源,可能直接把源站压垮。
四种刷新方式
按 URL 精确刷新最安全,但发版时改动的文件可能成百上千,逐个刷不现实。按标签是折中:在响应头里给资源打标签(如某个商品的所有相关页面共用一个标签),改动时按标签批量失效。
全站刷新的真实风险
全站刷新之后,所有边缘节点的缓存同时清空。接下来涌入的每一个请求都会未命中、都要回源——这就是缓存雪崩。
容易被低估的一点
平时命中率 95% 的站点,源站只承担 5% 的流量。全站刷新后的那几分钟,源站要承担接近 100% 的流量——相当于瞬间放大二十倍。很多「刷新缓存后网站挂了」的事故就是这么来的。
如果厂商支持,优先用「标记过期」而不是「删除」:前者配合 stale-while-revalidate,让旧副本在后台更新期间继续服务,源站压力平摊开。
实践建议
- 静态资源用内容哈希文件名(如 app.a1b2c3.js),改了就是新 URL,根本不需要刷新;
- 需要刷新的通常只有 HTML 入口和 API 响应,量很小,按 URL 刷就够;
- 选厂商时确认是否支持按标签刷新,这个能力在内容关联复杂的站点上省很多事;
- 把全站刷新当成应急手段,而不是发版流程的一环。
在你的网站验证
厂商对比对比各家的刷新粒度与生效速度