
1) 【一句话结论】在缓存系统中,需结合热点数据特性选择淘汰策略(如LRU/LFU),通过布隆过滤器降低缓存穿透概率,并采用分布式锁、热点数据预热、过期时间随机化等手段防护缓存雪崩,确保高并发下缓存系统稳定。
2) 【原理/概念讲解】
3) 【对比与适用场景】
缓存淘汰策略对比:
| 策略 | 定义 | 特性 | 使用场景 | 注意点 |
|------|------|------|----------|--------|
| LRU | 淘汰最近最少使用的 | 简单,适合热点数据 | 通用,如电商商品缓存 | 可能误判(如双端队列实现) |
| LFU | 淘汰访问频率最低的 | 需维护频率计数 | 热门数据(如视频网站视频) | 计数复杂度高 |
| LRU-K | 结合频率和时间 | 更精准 | 高价值数据(如金融交易数据) | 实现复杂 |
布隆过滤器 vs 缓存空对象:
| 方案 | 定义 | 优点 | 缺点 | 适用场景 |
|------|------|------|------|----------|
| 布隆过滤器 | 概率性哈希集合 | 体积小,查询快 | 有误判(可能返回“存在”但实际不存在) | 需要高并发、热点数据(如查询不存在的用户ID) |
| 缓存空对象 | 存储空值 | 无误判 | 需额外存储空对象,占用空间 | 低并发、数据量小 |
4) 【示例】
热点数据访问与布隆过滤器:
请求路径:/user/info?userId=10001
缓存雪崩防护:
5) 【面试口播版答案】
“面试官您好,关于缓存淘汰策略,核心是结合热点数据特性选择策略,比如LRU适合通用场景,LFU适合高频访问数据。布隆过滤器用于减少缓存穿透,通过概率性哈希判断请求是否可能命中缓存,避免空查询导致数据库压力。缓存雪崩防护则通过分布式锁限流、热点数据预热、过期时间随机化,确保高并发下缓存系统稳定。具体来说,比如热点数据访问时,先布隆过滤器判断,若可能存在则查缓存,否则查数据库;缓存雪崩时,用分布式锁控制并发,或提前预热数据,避免集中过期。”
6) 【追问清单】
7) 【常见坑/雷区】