拿下技术面上传简历

商品详情服务用 Redis 缓存商品 JSON,读 QPS 峰值约 8 万,缓存 TTL 统一设为 30 分钟。大促时发现某个爆款商品的缓存 key 每到过期瞬间,就有 2 万左右 QPS 直接穿透到 MySQL,把数据库连接池打满。请说明你会怎么改缓存层的读逻辑,以及你选这个方案放弃了什么。

工程与系统设计数据与存储3-5 年知识点 1 个

面试官在考什么

判断候选人能否区分缓存穿透/击穿/雪崩,并针对单热点 key 给出带取舍的方案,而不是只会说「加随机过期时间」。

Redis 使用场景

回答框架 · 前两步

  1. 定性准确:这是单热点 key 的击穿(不是穿透,也不是雪崩)。雪崩是大量 key 因同一时刻失效或实例故障集体回源;穿透是查不存在的数据每次都落库;随机 TTL 只对雪崩有效,对单个热点 key 没用。
  2. 方案一:逻辑过期(物理上不设 TTL,value 里带 expire 字段),发现逻辑过期时直接返回旧值,同时丢一个任务异步重建;稳定性最好,代价是允许一段短暂的数据陈旧。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题