缓存异常:缓存击穿、缓存穿透、缓存雪崩 及其解决方案

一、缓存穿透

什么是缓存穿透?

如何解决缓存穿透?

解决方案一:缓存空数据
解决方案二:布隆过滤器

误判率

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

总结

面试回答

二、缓存击穿

什么是缓存击穿?

当某一个热点ksy过期,当某一时间段大量并发请求过来,可能会把DB压垮

如何解决缓存击穿?

方案一:互斥锁(分布式锁)
  • 优点:强一致
  • 缺点:性能差
  • 使用场景:金融行业,需要安全保险
方案二:逻辑过期
  • 优点:
    • 高可用(别管结果可不可用,先返回结果再说)
    • 性能优
  • 使用场景:互联网行业,强调用户体验感

总结

面试回答

三、缓存雪崩

什么是缓存雪崩?

大量的key同时过期,或者 Redis服务宕机


怎么解决缓存雪崩?

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

总结

面试回答

相关推荐
海绵宝宝转agent38 分钟前
操作系统八股开源笔记分享
java·面试
weixin_440730501 小时前
内置函数、json文本、pickle二进制
开发语言·python·json
code_whiter1 小时前
01-MySQL数据库基础
数据库·mysql
殷色玫瑰1 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
CHEEVEN_QY1 小时前
新能源汽车电池托盘FSW量产的工艺稳定性控制
java·前端·汽车
念何架构之路1 小时前
zap WriteSyncer与Sink体系
云原生·golang
惊讶的猫1 小时前
MCP-server
java
weixin_382395231 小时前
本地部署 ERP 选型记录:从 Excel 到轻量系统的这几年
数据库·人工智能·数据挖掘
ZealSinger1 小时前
Boot4升级PostConstruct不跑了
java·spring boot·spring·升级迁移