首页/云/云网络与负载均衡速查/缓存键与参数忽略策略
云 DNS 与 CDN49 条

缓存键与参数忽略策略

缓存键通常由主机、路径与部分查询参数组成:忽略营销参数与随机串能提升命中率,业务参数(如版本号)必须参与区分。调整后要实测确认不同参数组合的命中行为。

缓存键决定命中边界

缓存键是 CDN 判断「这两个请求是不是同一份内容」的依据,通常由主机名、路径与全部或部分查询参数组成。默认包含全部参数最安全,但营销参数、统计参数会让同一文件被拆成多份缓存,命中率大幅下降。合理做法是把无业务含义的参数忽略掉,同时确保版本号、规格等真正影响内容的参数参与区分。

基本信息

默认组成主机名 + 路径,多数产品默认包含全部查询参数
可忽略项统计、渠道、营销等无内容影响的参数
必须保留版本号、语言、尺寸等会改变内容的参数
验证方式用带参与不带参的请求分别观察命中状态
风险忽略过宽会让不同内容互相覆盖

典型使用场景

  • 推广链接带 utm 参数导致命中率骤降,需要配置忽略
  • 图片服务用尺寸参数返回不同图,参数必须保留
  • 接口按版本号返回不同结构,版本参数要参与缓存键
  • 出现内容串台(A 用户的响应给了 B),排查缓存键是否过宽
  • 大促前复查缓存键配置,避免临时参数把缓存打散

对比参数对命中的影响

对比参数对命中的影响
curl -sI 'https://cdn.example.com/a.js?utm_source=x' | grep -i -E 'x-cache|age'
curl -sI 'https://cdn.example.com/a.js' | grep -i -E 'x-cache|age'
# 若两次都命中且 Age 接近,说明参数已被忽略
# 若一次 MISS 一次 HIT,说明参数进入了缓存键

参数处理建议

参数类型处理方式原因
统计与渠道参数忽略不影响内容,只会拆散缓存
版本号保留不同版本内容不同
语言与地区保留影响返回内容
随机数忽略或在前端移除命中率杀手
忽略参数过多会把不同内容视为同一资源,出现内容互相覆盖;上线前要用带参与不带参的组合实测,而不是只看文档示例。
缓存键的组成与忽略规则会直接影响命中率与回源量,调整后应在监控上看命中率曲线变化,再用抽样验证实际行为。

易错点

  • 忽略参数范围过宽,不同版本内容互相覆盖,用户拿到错误资源
  • 随机参数进了缓存键,同一资源反复回源,命中率长期偏低
  • 只在源站或直连测试缓存行为,没有验证 CDN 边缘的实际命中情况
  • 调整缓存键后没观察命中率与状态码曲线,问题被延后暴露

数据来源与参考

  • 阿里云 CDN 缓存键文档
  • 腾讯云 CDN 缓存键说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌