CDN缓存标签与精细刷新:清除缓存不再“一刀切”
本内容发表于:2026-07-03 12:05:27
浏览量
1064

CDN缓存标签与精细刷新:清除缓存不再“一刀切”

微信图片_2026-07-03_114659_443.png

去年一个客户,每次更新内容都全量刷新缓存。结果命中率从85%直接跌到40%,源站带宽瞬间飙上去。他说:“我知道全量刷新伤命中率,但不刷用户看不到新内容啊。”

我说:“缓存标签了解一下。”

CDN默认的URL和目录刷新是全量操作——要么清掉一个文件的缓存,要么清掉整个目录。缓存标签的精细化刷新方式,可以按内容类型、业务模块等维度精准删除缓存,不影响其他内容。

01 两种刷新的代价

URL刷新:删除单个文件的缓存。精准,但业务更新涉及几十上百个文件时,手动提交不现实。

目录刷新:清除整个目录下所有文件的缓存。简单粗暴,但会导致大量缓存被清空,回源请求激增,源站压力陡增。

那家客户用的就是目录刷新。每次更新几篇文章,把整个/news/目录刷新一遍,旧缓存全清,命中率自然跌得厉害。

02 缓存标签:第三种选择

缓存标签的精细化刷新方式,只需给一批缓存数据打上相同标签,更新时针对标签一次性刷新即可。

工作原理

  • 给缓存内容打标签(如type:newsmodule:homepage

  • 更新内容时,提交对应的缓存标签

  • CDN节点只清除带该标签的缓存,其他内容不受影响

阿里云CDN提供了RefreshObjectCacheByCacheTagAPI接口,提交缓存标签即可触发刷新。腾讯云和华为云有类似能力。这是目前最精细化的缓存管理方式。

03 标签策略怎么设计

按内容类型分static:imgstatic:cssdynamic:api

按业务模块分module:homepagemodule:productmodule:news

按更新时间分:按日、按周等维度

好的标签策略,能让刷新操作精确定位到需要更新的内容,不影响其余部分。

04 先刷新再预热

内容更新时,标准流程是先刷新、再预热。刷新清除旧缓存,预热把新内容主动推送到边缘节点。两者配合,命中率基本不受影响

写在最后

那家客户后来改用缓存标签刷新:更新文章只刷type:news标签,其他标签的缓存不动。命中率稳定在80%以上,源站压力也下来了。

全量刷新是最后的手段,缓存标签才是日常更新的正确方式。你的CDN,还在一刀切吗?