当前位置: 首页 > web >正文

什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?

缓存雪崩:在一个时间段内,有大量的key过期,或者Redis服务宕机,导致大量的请求到达数据库,带来巨大压力
- 给key设置不同的TTL、利用Redis集群提高服务的高可用性、添加多级缓存、添加降级流策略
缓存击穿:给某一个key设置了过期时间,当key过期的时间,恰好这个时间点有大量的并发请求访问这个key,可能会瞬间把数据库压垮
- 互斥锁:缓存失败时,只允许一个请求去加载数据并更新缓存,其他请求阻塞等待
- 逻辑过期时间:不给key设置过期时间,而是添加一个逻辑过期时间字段,查询缓存发现逻辑过期时间已过期时,再获取互斥锁,如果获取成功,则开启一个新线程去查询数据并更新缓存,失败则返回过期数据
缓存穿透;访问一个不存在的数据,在数据库没有读取到也不会直接写入缓存,导致每次请求都到达数据库,带来压力
- 缓存空数据:查询返回的数据为空,仍然将空数据缓存;实现简单、消耗内存
- 布隆过滤器:将可能存在的数据哈希到一个足够大的bitmap,可以过滤掉一些不存在的数据,避免了DB的查询
缓存预热:在系统启动或缓存失效后,提前将部分数据加载到Redis缓存中,提高系统的响应速度和性能

http://www.xdnf.cn/news/16478.html

相关文章:

  • QT中启用VIM后粘贴复制快捷键失效
  • SQL Developer Data Modeler:一款免费跨平台的数据库建模工具
  • Linux c++ CMake常用操作
  • 数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
  • 融合为体,AI为用:数据库在智能时代的破局之道
  • petalinux配置总结
  • 卫星通信终端天线对星之:参考星对星
  • SSE (Server-Sent Events) 服务出现连接卡在 pending 状态的原因
  • 数据库HB OB mysql ck startrocks, ES存储特点,以及应用场景
  • 树上倍增和LCA问题
  • 【Zephyr】Window下的Zephyr编译和使用
  • 数学建模国赛历年赛题与优秀论文学习思路
  • 考研复习-数据结构-第八章-排序
  • 洛谷 P1217:[USACO1.5] 回文质数 Prime Palindromes
  • Android开发中线上crash问题解决流程
  • [spring6: Mvc-函数式编程]-源码解析
  • 栈----2.最小栈
  • 单元测试、系统测试、集成测试知识详解
  • 面试150 只出现一次的数字
  • Java I/O知识归纳
  • 字符串操作
  • ESP32实战:5分钟实现PC远程控制LED灯
  • AI Agent笔记--读腾讯技术公众号
  • dify前端应用相关
  • Java中List集合对象去重及按属性去重
  • 学习随想录-- web3学习入门计划
  • Flutter开发实战之路由与导航
  • Flink是如何实现物理分区?
  • 39.Python 中 list.sort() 与 sorted() 的本质区别与最佳实践
  • C语言开发工具Win-TC