最近更新时间:2025-12-04 15:02:34
CDN基于“缓存”这个重要功能为您的业务提供高质量分发服务,缓存命中率越高,代表访问命中 CDN的比例越高,访问质量越好。如何根据业务形态设置合理的缓存配置,提高缓存命中率,是优化访问质量的重要手段。
缓存命中率指请求命中 CDN缓存的比例。
请求数命中率=[1-回源请求数/服务请求数]*100%
流量命中率=[1-回源流量/服务流量]*100%
当服务请求数或服务流量为0时,命中率为0
可以通过CDN控制台【命中率统计】页面查看指定域名或某一加速类型全部域名的请求命中率及流量命中率数据。
您也可以通过调用API查询命中率数据,参考文档查询命中率详情-文档中心-金山云
根据您具体的业务类型设置合理的缓存时间,以提高缓存命中率。
未配置缓存规则的文件遵循系统默认缓存设置,默认所有文件忽略 「?」后面的所有参数缓存30天。
您可以在域名【自助配置】点击【管理】进入【缓存配置】页面进行缓存配置。
根据文件更新频率的不同设置不同的缓存规则。以下为常见业务类型的缓存配置示例。
图片小文件
大文件下载
音视频点播
注意事项
示例配置为点播场景,若需要分发 HLS直播,需要配置m3u8缓存时长小于ts切片时长,例如 m3u8缓存 2秒,ts缓存 1分钟。
默认情况下 CDN忽略「?」后面的所有参数缓存,对应配置为【忽略参数】,以提高缓存命中率。
若您的业务场景中根据部分参数不同,分发的资源不同,建议修改为【指定部分参数】。
例如以下场景:
源站存在图片处理逻辑,同一图片 URL请求存在参数images=webp时,会响应webp类型文件。
请求url 为https://example.com/test.jpg时,响应资源为原图;
请求url 为https://example.com/test.jpg?images=webp时,响应资源为处理后的webp 图片。
若配置为默认的忽略参数缓存,在用户A请求https://example.com/test.jpg时,CDN以将源站返回的原图资源缓存,用户B请求https://example.com/test.jpg?images=webp时,因 CDN忽略参数缓存,会命中https://example.com/test.jpg的缓存,不进行回源请求,将原图资源响应给用户B。
该场景可以修改参数缓存配置为【指定部分参数】,将images参数加入缓存。
配置修改后当资源path不变而images参数值变化时,CDN也会视为请求文件变化而回源获取资源,并独立缓存。
例如:
A请求:https://example.com/test.jpg
B请求:https://example.com/test.jpg?images=webp
C请求:https://example.com/test.jpg?images=jpg
D请求:https://example.com/test.jpg?images=jpg&a=1
A\B\C请求将视为不同的资源进行独立缓存,而 D请求会命中 C 请求资源缓存。
配置示例
在域名【自助配置】点击【管理】进入【性能优化】配置页面,编辑过滤参数设置为【指定部分参数】,输入需要指定缓存的值“images”。
注意事项:
常规情况下,我们不推荐您直接修改参数缓存配置为【保留参数】,在此配置下,所有请求参数的变动,均会导致请求未命中缓存回源,缓存命中率会大幅下降。
1.配置时间戳防盗链后缓存失效
配置时间戳防盗链后请求参数需要添加 t、k参数参与防盗链鉴权,若您设置参数缓存配置为【保留参数】,会在 t、k参数变动时导致缓存无法命中,可以将参数缓存设置修改为【忽略参数】或【删除部分参数】(t、k)解决该问题。
2.缓存 0秒和不缓存有什么区别
当设置缓存0秒时,请求会先回源校验Etag与Last-Modified值是否变化,若源站响应 304,则 CDN响应已缓存资源给客户端,若源站响应 200,则回源获取新的资源缓存 0秒并响应给客户端;
当设置不缓存时,请求会直接回源获取资源响应给客户端,CDN不缓存。
3.遵循源站缓存的优先级是什么
当设置遵循源站缓存时,CDN会根据请求回源时源站返回的响应头Cache-Control和Expires进行缓存时间判定,优先级为Cache-Control>Expires;若源站未响应Cache-Control和Expires头,则按配置的 CDN缓存规则生效。
纯净模式
