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

一、缓存穿透

什么是缓存穿透?

如何解决缓存穿透?

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

误判率

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

总结

面试回答

二、缓存击穿

什么是缓存击穿?

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

如何解决缓存击穿?

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

总结

面试回答

三、缓存雪崩

什么是缓存雪崩?

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


怎么解决缓存雪崩?

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

总结

面试回答

相关推荐
God__is__a__girl2 小时前
IntelliJ IDEA 启动失败问题解决记录
java·ide·intellij-idea
chushiyunen2 小时前
python日志logging、django日志等
python·django
于先生吖2 小时前
微服务架构下 Java 跑腿系统:分布式部署与性能优化
java·微服务·架构
丝斯20112 小时前
AI学习笔记整理(74)——Python学习3
笔记·python·学习
雾隐潇湘2 小时前
第三章 流程控制语句
开发语言·python
逸Y 仙X2 小时前
文章七:ElasticSearch索引字段类型
java·大数据·elasticsearch·搜索引擎·全文检索
杰杰7982 小时前
一文掌握Django模型——认识模型
数据库·python·django
add45a2 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
渔民小镇2 小时前
告别 Redis/MQ —— ionet 分布式事件总线实战
java·服务器·分布式
2501_918126912 小时前
学习所有6502游戏的系统
java·汇编·嵌入式硬件·学习·游戏