重定向性能

短链接服务的大部分流量发生在跳转链路。用户点击短链接后,系统必须尽快返回重定向响应;几十毫秒的额外延迟都会被感知,热门链接还可能在短时间内带来巨大的读取压力。因此重定向性能是短链接系统的主战场。

本章会先比较 301 和 302。301 表示永久重定向,浏览器和搜索引擎可能长期缓存结果;302 表示临时重定向,更适合需要统计点击、支持过期和可修改目标地址的短链接。选择错误会影响统计准确性、链接更新和用户体验。

性能设计通常采用多级缓存:本地缓存承载超热点短码,Redis 或 KV 缓存承载大部分跳转查询,数据库作为兜底事实来源。缓存值不只包含长 URL,还应包含状态、过期时间、权限和审核结果。否则缓存可能绕过下线、封禁或过期逻辑。

完成本章后,你应当能设计一条低延迟跳转路径:请求进入短链域名,服务解析短码,优先查缓存,未命中回源数据库,校验状态后返回重定向,并异步记录点击事件。跳转链路要尽量短,但不能牺牲正确性和安全约束。

本章的验收标准是:你能说明缓存命中、缓存失效、链接封禁、链接过期和目标地址变更时跳转链路分别如何处理。性能优化不能只看平均延迟,还要考虑热点短码、缓存穿透、缓存污染和业务状态一致性。

章节