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

一、缓存穿透

什么是缓存穿透?

如何解决缓存穿透?

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

误判率

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

总结

面试回答

二、缓存击穿

什么是缓存击穿?

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

如何解决缓存击穿?

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

总结

面试回答

三、缓存雪崩

什么是缓存雪崩?

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


怎么解决缓存雪崩?

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

总结

面试回答

相关推荐
CodeAmaz几秒前
Redis大Key与热点Key问题解决方案
redis·大key·热点key
yongche_shi几秒前
第八十七篇:设计一个监控与告警系统
python·面试宝典·监控和告警系统
cike_y几秒前
Spring5入门&IOC容器
java·开发语言·spring·jdk·ioc·jdk1.8
herinspace2 分钟前
管家婆网店ERP如何录入成本调价单
服务器·数据库·oracle·智能手机·电脑
短剑重铸之日3 分钟前
7天读懂MySQL|Day 1: MySQL 架构全景
数据库·mysql·架构
彼岸花开了吗4 分钟前
构建AI智能体:六十六、智能的边界:通过偏差-方差理论理解大模型的能力与局限
人工智能·python
悟空码字6 分钟前
SpringBoot 整合 Nacos,让微服务像外卖点单一样简单
java·spring boot·后端
适应规律15 分钟前
MMCV包的安装教程
python
醉风塘16 分钟前
MongoDB高级查询全攻略:使用MongoTemplate实现分组、排序、分页与连表查询
数据库·mongodb
云技纵横17 分钟前
Spring Cache 多线程环境的线程安全与并发控制
java·安全·spring