一、缓存穿透
什么是缓存穿透?

如何解决缓存穿透?
解决方案一:缓存空数据

解决方案二:布隆过滤器


误判率

**具体代码实现:**设置误判率 0.05

总结

面试回答

二、缓存击穿
什么是缓存击穿?
当某一个热点ksy过期,当某一时间段大量并发请求过来,可能会把DB压垮

如何解决缓存击穿?

方案一:互斥锁(分布式锁)
- 优点:强一致
- 缺点:性能差
- 使用场景:金融行业,需要安全保险

方案二:逻辑过期
- 优点:
- 高可用(别管结果可不可用,先返回结果再说)
- 性能优
- 使用场景:互联网行业,强调用户体验感

总结

面试回答

三、缓存雪崩
什么是缓存雪崩?

大量的key同时过期,或者 Redis服务宕机
怎么解决缓存雪崩?

- 不同的Ksy的TTL添加随机值
- 哨兵集群
- 多级缓存
- ++限流++作为保底解决
总结

面试回答
