TTL (Time to Live,生存时间) 是一个广泛应用于网络和缓存系统中的概念,指数据在被丢弃或刷新之前的有效存活时间。在不同的技术场景中,TTL 有不同的含义和单位。
在 DNS 中,TTL 以秒为单位,指定 DNS 记录在缓存中的有效时间。较长的 TTL (如 86400 秒 = 24 小时) 减少 DNS 查询次数但延迟配置变更的生效;较短的 TTL (如 300 秒 = 5 分钟) 允许快速变更但增加 DNS 查询负载。
在 URL 缩短服务中,TTL 概念应用于多个层面:DNS 记录的 TTL 影响域名解析速度、CDN 缓存的 TTL 影响重定向响应的缓存行为、数据库记录的 TTL (如 DynamoDB 的 TTL 功能) 用于自动清理过期的短链接。
TTL 的设置需要在性能和灵活性之间权衡。对于短链接服务,DNS TTL 通常设置为较短的值 (如 300 秒),以便在需要时快速切换服务器;CDN 缓存 TTL 则根据重定向类型 (301 vs 302) 和追踪需求来决定。
实务上的最佳做法是:计划变更 DNS 记录时,在变更前 24 至 48 小时先把 TTL 调短 (300 秒左右) ,变更完成后再恢复原来的取值。这样既能让变更迅速生效,平时又能继续享受较长 TTL 带来的缓存收益。