第3章 分布式缓存核心原理:缓存类型、淘汰策略、一致性哈希、缓存雪崩/穿透/击穿
本章聚焦分布式缓存四大核心考点,面试官通常从“你用过的缓存方案”切入,逐层深入到底层原理与异常防御。掌握缓存分类选型、淘汰策略配置、一致性哈希设计及三种缓存异常的区分应对,是面试中展现系统化思考能力的关键。
Q1:请详细说明常见的缓存类型及其淘汰策略,如何根据业务场景选择合适的缓存方案?
🎯 面试官考察点:对缓存体系的全景理解深度,是否掌握不同缓存的适用边界,能否将业务需求转化为技术选型。
🧩 回答框架
- 分类阐述:本地缓存(Guava Cache)、集中式缓存(Redis)、分布式缓存(Redis Cluster),各自特点。
- 策略对比:LRU(最近最少使用)、LFU(最不经常使用)、TTL(过期淘汰)的适用场景。
- 场景匹配:高并发→本地+Redis两级架构;强一致→TTL+主动更新;成本敏感→LRU控制内存。
✏️ 示例回答:缓存主要分本地(Guava Cache)、集中式(Redis)和分布式三类。淘汰策略常用LRU、LFU和TTL。高并发场景优先本地+Redis两级架构;数据一致性要求高的场景使用TTL加主动更新,兼顾性能与一致性。
🔍 可能追问
- Redis 的淘汰策略有哪几种?如何选择?
- LRU 和 LFU 的核心区别是什么?
- 如何监控缓存淘汰导致的性能波动?
⚠️ 避坑提醒:不要只背诵策略名称,要结合业务场景说明选择理由。例如“秒杀场景优先LFU防热点”比“用过LRU”更有区分度。
Q2:请解释一致性哈希算法的原理及其在分布式缓存中的应用,如何解决数据倾斜问题?
🎯 面试官考察点:对分布式数据分布机制的理解,是否掌握一致性哈希的核心优势及工程优化手段。
🧩 回答框架
- 原理说明:将数据 Key 和节点映射到哈希环,数据顺时针存储到最近的节点。
- 优势阐述:节点增减只影响相邻节点数据,最小化数据迁移。
- 优化方案:引入虚拟节点,每个物理节点对应多个虚拟节点,使数据分布更均匀。
✏️ 示例回答:一致性哈希将数据和节点映射到哈希环,节点增减只影响相邻节点。引入虚拟节点解决数据倾斜,每个物理节点对应100-200个虚拟节点。Redis Cluster采用类似思路分片,工程中还需配合监控工具调整虚拟节点数量。
🔍 可能追问
- 一致性哈希与哈希取模(mod)相比,核心优势是什么?
- 虚拟节点数量如何设置?有什么考量?
- 数据倾斜时如何动态 rebalance?
⚠️ 避坑提醒:不要只讲理论环结构,要说明工程实践。例如“虚拟节点数通常设置为100-200个,需平衡内存开销与均衡性”。
Q3:请分别解释缓存雪崩、缓存穿透、缓存击穿的区别及对应的解决方案?
🎯 面试官考察点:对缓存异常场景的识别与防御能力,能否清晰区分三种异常并给出可落地的方案。
🧩 回答框架
- 概念区分:雪崩→大批Key同时过期;穿透→查询不存在数据;击穿→热点Key过期。
- 成因分析:雪崩因批量过期/宕机;穿透因恶意攻击/数据缺失;击穿因热点集中失效。
- 解决方案:雪崩→过期时间加随机值+多级缓存;穿透→布隆过滤器+空值缓存;击穿→互