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

一、缓存穿透

什么是缓存穿透?

如何解决缓存穿透?

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

误判率

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

总结

面试回答

二、缓存击穿

什么是缓存击穿?

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

如何解决缓存击穿?

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

总结

面试回答

三、缓存雪崩

什么是缓存雪崩?

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


怎么解决缓存雪崩?

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

总结

面试回答

相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
呆萌很3 小时前
【GO】结构体构造函数练习题
golang
0xDevNull5 小时前
MySQL数据冷热分离详解
后端·mysql
一定要AK5 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao5 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢5 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
KevinCyao5 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
科技小花5 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸5 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain5 小时前
linux个人心得22 (mysql)
数据库·mysql