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

一、缓存穿透

什么是缓存穿透?

如何解决缓存穿透?

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

误判率

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

总结

面试回答

二、缓存击穿

什么是缓存击穿?

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

如何解决缓存击穿?

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

总结

面试回答

三、缓存雪崩

什么是缓存雪崩?

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


怎么解决缓存雪崩?

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

总结

面试回答

相关推荐
U盘失踪了几秒前
python curl转python脚本
开发语言·chrome·python
热爱运维的小七1 分钟前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
FQNmxDG4S4 分钟前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python
@小柯555m12 分钟前
MySql(高级操作符--操作符混合运用)
数据库·sql·mysql
CDN36014 分钟前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
bzmK1DTbd15 分钟前
JDBC编程规范:PreparedStatement与事务管理
数据库·python·eclipse
我星期八休息25 分钟前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表
代码小书生28 分钟前
math,一个基础的 Python 库!
人工智能·python·算法
卧室小白36 分钟前
Redis-哨兵模式
数据库·redis·缓存
GottdesKrieges40 分钟前
OceanBase恢复常见问题
java·数据库·oceanbase