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

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

缓存穿透

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

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

缓存雪崩

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

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

综上所述:

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

相关文章:

  • 【微服务篇】分布式事务方案以及原理详解
  • 目标检测的相关模型图: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了,碰到一个内存释放问题,顺便聊聊思路
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读