性能优化

CDN 缓存如何提升网站访问性能

缓存命中与未命中差在哪里?TTL、Cache-Control 如何配合?本文讲解 CDN 缓存的原理与命中率优化思路。

阅读时长约 7 分钟

缓存为什么能让网站变快

一次完整的跨境请求,时间主要花在"距离"上:光速有限,链路越长、经过的网络设备越多,延迟越高。缓存的本质是用空间换距离——把内容复制到离用户近的边缘节点,把上百毫秒的跨境往返变成十几毫秒的同城访问。

两种结果的差距非常直观:

场景请求路径典型延迟
缓存命中(HIT)用户 → 边缘节点10 ~ 30ms
缓存未命中(MISS)用户 → 边缘节点 → 源站 → 边缘节点 → 用户150ms 以上

所以 CDN 性能优化的核心指标就是缓存命中率:命中率越高,越多请求在边缘就被消化,用户体验越好,源站压力也越小。

缓存的生命周期:TTL 与缓存键

每个缓存对象都有一个 TTL(Time To Live,存活时间)。在 TTL 内,节点直接返回缓存副本;TTL 过期后,下一次请求会触发回源刷新。TTL 可以由两处决定:

  • 源站响应头Cache-Control: max-age=86400 表示允许缓存一天;no-store 则完全禁止缓存;
  • CDN 控制台规则:按路径、后缀设置缓存时间,可覆盖源站头(例如强制图片缓存 30 天)。

节点用缓存键(默认是 URL)区分不同对象。这也是常见的坑:如果 URL 上带了随机参数(如 ?t=1690000000),每个请求的缓存键都不同,命中率会直接归零。

提升命中率的五个实践

  1. 静态资源设置长 TTL:图片、字体、构建产物(带哈希文件名的 JS/CSS)可以缓存 7~30 天,更新靠改文件名而不是清缓存;
  2. 规范化 URL:去掉无意义的查询参数,或在 CDN 配置中忽略指定参数,避免缓存键碎片化;
  3. HTML 用短 TTL 而不是不缓存:给页面 30~300 秒的短缓存,高并发时能挡住绝大多数回源;
  4. 动静分离:接口走动态加速(不缓存但走优化链路),资源走强缓存,各得其所;
  5. 关注命中率报表:命中率明显偏低时,优先排查 Cache-Control 响应头与带参 URL。

缓存之外:动态内容怎么办

登录态接口、订单查询这类动态内容无法缓存,但 CDN 依然有价值:请求在边缘节点就近接入,回源走平台优化过的骨干链路(如 CN2),TCP/TLS 连接由节点与源站长连接复用——即使 0% 缓存的纯 API 业务,接入后延迟通常也能下降 30% 以上。

经验法则:静态内容看命中率,动态内容看回源链路质量。两者一起构成了完整的加速效果。

如果你的源站在海外、用户在大陆,回源链路的选择尤其关键,可以继续阅读《CN2 GIA 是什么?跨境线路选择指南》

把这些能力直接用起来

QEdgeCDN 提供亚太边缘加速、CN2 优化线路、智能 WAF 与 SSL 自动托管,注册即可接入,体验版 ¥2/月 起。

继续阅读