缓存

⚠️ 资料来源于互联网整理,仅作备考参考,正式结论请以官方教程与考纲为准。发现错误欢迎反馈问题。

🔒 本篇为会员内容。开通会员 →(全站会员内容畅读 · 附件下载 · 专享答疑)

学科 计算机系统 | 章节 §1 | 考点类型 — | 重要度 — | 知识点ID —

学科:计算机系统 | 大纲域:§1 | 考频:每年 1-2 题,案例题高频 题目与解析来自 raw/kb26-题库练习/(二级来源);每题已绑定知识点 ID,可在对应知识点页对照复习。

1. 缓存穿透(Cache Penetration) 的典型场景与防护手段,下列描述错误的是:

题型:单选 | 难度:难 | 知识点:CS-07 存储器层次结构与Cache

  • A. 大量请求查询数据库中不存在的 key,缓存层不命中、全部打到 DB
  • B. 可以通过布隆过滤器(Bloom Filter) 在缓存前过滤掉一定不存在的 key
  • C. 可以将”不存在”也缓存(缓存空值),并设置较短过期时间
  • D. 增大缓存容量就能彻底解决穿透问题 ✅

答案:D

解析(采分点):穿透的根因是”查的 key 根本不存在”——再大的缓存也装不下”不存在的数据”。两大解决方案:①布隆过滤器(O(1) 判断”一定不存在”,有少量误判但绝不漏判);②缓存空值(key→null,设短 TTL 防止占空间)。穿透常见来源:黑产恶意攻击、爬虫扫描 ID。


2. 缓存击穿(Cache Breakdown) 的根本原因是:

题型:单选 | 难度:易 | 知识点:CS-07 存储器层次结构与Cache

  • A. 大量 key 同时过期
  • B. 某个热点 key 突然失效,瞬间高并发请求全部打到数据库 ✅
  • C. 缓存服务整体宕机
  • D. 数据库连接池耗尽

答案:B

解析(采分点):击穿专指”单点热 key 失效”——比如某爆款商品详情页的 key 刚过期,1 秒内 10 万请求并发查 DB,DB 直接被压垮。解决方案:①热 key 永不过期(后台异步刷新);②互斥锁(Mutex / SingleFlight)——只让一个线程查 DB 回填缓存,其他线程等待结果;③逻辑过期(缓存中存”逻辑过期时间”,过期时异步刷新、返回老值)。


3. 缓存雪崩(Cache Avalanche) 的常见诱因,下列不属于的是:

题型:单选 | 难度:中 | 知识点:CS-07 存储器层次结构与Cache

  • A. 大量 key 设置了相同或相近的过期时间,同时失效
  • B. Redis 集群整体宕机
  • C. 单个 key 被高频访问 ✅
  • D. 缓存重启后所有数据丢失(冷启动)

答案:C

解析(采分点):单 key 高频访问是热 key 问题或击穿问题,不是雪崩。雪崩特征是”大面积失效”。预防方案:①过期时间打散(基础 TTL + 随机偏移,如 30 分钟 ± 5 分钟);②Redis 高可用(主从/哨兵/Cluster + 持久化);③限流降级(Sentinel/Hystrix 在缓存崩时降级返回兜底数据保护 DB);④多级缓存(本地 Caffeine 兜底 Redis);⑤预热(重启后批量回填热数据)。

显示剩余 73% 未加载,展开全文会员 / 金牌会员可阅读全文、下载附件、专享答疑了解会员权益