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

通俗讲解缓存穿透和缓存雪崩

缓存穿透

想象一下,你开了一家商店,但是有人总是来问一些你店里根本没有的商品(我们可以把这些商品理解为数据库里不存在的数据)。为了避免每次都去仓库(数据库)查找这些根本不存在的商品,你决定在店门口放一个告示(缓存),列出你店里有的商品。但是,如果有人故意或无意地询问告示上没有的商品,你仍然需要每次都去仓库确认,这就是缓存穿透。它会导致你不得不频繁访问仓库(数据库),浪费大量时间和资源。

解决方法可以是在告示上标注:“除了这些商品,其他的我们店里都没有”,这样就不用每次都去仓库确认了。

缓存雪崩

现在,想象在一个非常忙碌的日子,突然你店门口的告示(缓存)因为某种原因全部丢失了,所有的顾客都需要你去仓库(数据库)确认商品。这会导致仓库接受大量的查询请求,过载甚至瘫痪,这就是缓存雪崩。

解决方法可以是制作多份告示(设置多级缓存)或者在告示即将丢失前(缓存即将过期时),提前准备好新的告示来替换旧的,这样就能避免大家同时冲向仓库的情况。

综上所述:

  • 缓存穿透是指查询不存在的数据,导致每次查询都要访问数据库,可以通过设置默认空值缓存来防止。
  • 缓存雪崩是指大量缓存同时失效,导致短时间内大量请求直接落到数据库上,可以通过设置不同的缓存过期时间来避免。
http://www.dtcms.com/a/9685.html

相关文章:

  • 【微服务篇】分布式事务方案以及原理详解
  • 目标检测的相关模型图:YOLO系列和RCNN系列
  • 详解JS方法之slice、splice、substring、substr
  • admin端
  • 《c++》纯虚函数和抽象类
  • C#WPF控件大全
  • jenkins拉取java远程日志
  • RabbitMQ介绍
  • 20.Ubuntu下安装GCC
  • 1.7.2 python练习题15道
  • 【@changesets/cli】变更集实战教程
  • JavaEE之网络初识(网络中的一些基本概念)详解
  • iOS开发 - 转源码 - __weak问题解决
  • 【WPF应用7】 基本控件-Grid 布局的详解与示例
  • 【小尘送书-第十五期】Excel函数与公式应用大全for Excel 365 Excel
  • jvm高级面试题-2024
  • Vue3气泡卡片(Popover)
  • docker容器退出后数据丢失怎么恢复?
  • linux 命令行下的计算器
  • 也来混rt_thread了,碰到一个内存释放问题,顺便聊聊思路
  • 高阶SQL语句(二)
  • 电脑WinSxS文件夹太大,如何清理?分享四种方法
  • 【循环神经网络rnn】一篇文章讲透
  • C++入门:类和对象(上)
  • 【boost_search搜索引擎】2.正排索引和倒排索引
  • 37、Linux中Xsync数据同步备份工具
  • [BT]BUUCTF刷题第9天(3.27)
  • Golang-web开发好用的依赖库
  • 苹果与百度合作,将在iPhone 16中使用生成式AI
  • DSP 看门狗权威解读