如何避免缓存穿透、缓存击穿、缓存雪崩?

news2025/1/15 19:52:49

缓存雪崩:

缓存雪崩是指 缓存同⼀时间⼤⾯积的失效 ,所以,后⾯的请求都会落到 数据库 上, 造成数据库短时间内承受⼤量请求⽽崩掉

解决方案:

  • 缓存数据的过期时间设置随机,防⽌同⼀时间⼤量数据过期现象发⽣。
  • 给每⼀个缓存数据增加相应的 缓存标记 ,记录缓存是否失效,如果缓存标记失效,则更新数据缓存。
  • 缓存预热互斥锁

缓存穿透:

缓存穿透是指缓存和数据库中都没有的数据导致所有的请求都落到数据库上,造成数据库短时间内承受⼤量请求⽽崩掉。

解决方案:

  • 接⼝层增加校验,如⽤户鉴权校验,id做基础校验,id<=0的直接拦截
  • 从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30 秒(设置太⻓会导致正常情况也没法使⽤)。这样可以 防⽌攻击⽤户反复⽤同⼀个id暴⼒攻击
  • 采⽤ 布隆过滤器 ,将所有可能存在的数据哈希到⼀个⾜够⼤的 bitmap 中,⼀个⼀定不存在的数据会被这个 bitmap 拦截掉,从⽽ 避免了对底层存储系统的查询压⼒

缓存击穿:

缓存击穿是指 缓存中没有但数据库中有的数据 (⼀般是缓存时间到期),这时由于 并发⽤户特别多 同时读缓存没读到数据,⼜同时去数据库去取数据,引起数据库压⼒瞬间增⼤,造成 过⼤压⼒ 。和缓存雪崩不同的是,缓存击穿指并发查同⼀条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从⽽查数据库。

解决方案:

  • 设置热点数据永远不过期。加互斥锁

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序接入火山引擎埋点数据

1&#xff0c;文档中心-火山引擎 2&#xff0c;文档中心-火山引擎 3&#xff0c;文档中心-火山引擎 上面的链接是三个最重点的部分。 首先按照1的步骤安装SDK。npm install datarangers/sdk-mp 配置合法域名将https://mcs.volceapplog.com添加到小程序后台的“request合法域…

你能懂的 Reflect 反射

你能懂得 JS 之 Reflect 反射 上一篇文章《Proxy 代理对象使用详解即原理总结》我们详细介绍了 Proxy 代理对象的使用及其工作原理&#xff08;不了解的同学可以去看看哦&#xff09;&#xff0c;今天我们来聊聊它的好兄弟 Reflect 反射。 特点 Reflect 是一个内置全局对象&a…

[go学习笔记.第十六章.TCP编程] 4.项目-海量用户即时通讯系统-显示在线用户列表,群聊

1.实现功能-完成登录时能返回当前在线用户 用户登录后,可以得到当前在线用户列表 示意图如下: 步骤: (1).编写了server/processBlock/userManager.go package processBlockimport ("fmt" )//因为UserManager实例在服务器中有且只有一个,并且在很多地方都要使用,因…

博客系统前端页面

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目录 博客系统 前言 一.预期效果 博客列表页效果 博客正文页效果 博客登录页效果 博客编辑页效果 二.实现博客列表页 实现导航栏 实现版心 实现个人信息 …

【DELM分类】基于matlab麻雀搜索算法改进深度学习极限学习机数据分类【含Matlab源码 2235期】

⛄一、麻雀搜索算法改进深度学习极限学习机数据分类 1 深度极限学习机 深度极限学习机算法(Deep Extreme Learning Machine, DELM)又称多层极限学习机.存在N个训练样本&#xff0c;其中 2 麻雀搜索算法(SSA) 2020年&#xff0c;薛建凯等人提出了麻雀搜索算法.麻雀搜索算法是一…

python判断语句

一、布尔类型和比较运算符 布尔类型 只有两个结果 是 / 否 定义变量存储布尔类型数据&#xff1a; 变量名称布尔类型字面量 布尔类型的数据不仅可以通过定义得到也可以通过比较运算符比较内容得到 比较运算符&#xff1a; 二、if判断语句基本格式 程序中的判断&#…

如何鉴别一个成功的Scrum 教练?

成功的Scrum教练&#xff1a;如何鉴别一个成功的Scrum教练&#xff1f;了解更多关于优秀的Scrum专家的特征。 前言: 成功的Scrum 教练 - 我认为的九大标准 如何判别Scrum 教练是否是合格的&#xff1f;Scrum 教练成功的标准是什么&#xff1f;经常使用Confluence回顾性模板是不…

java创建线程的方式到底有几种?(详解)

创建线程的方式到底有几种&#xff1f;一&#xff0c;创建多线程的方式1&#xff0c;官方解释2&#xff0c;实现Runnable接口3&#xff0c;继承Thread类3&#xff0c;二者区别3.1&#xff0c;本质区别3.2&#xff0c;优先考虑使用第一种二&#xff0c;误以为是创建线程的几种新…

react(子传父、父传子)

目录 1. 父传子 数组/对象 的两种写法 2. 子传父&#xff1a; 3. 生成唯一id的库&#xff1a; 4. 对接收的组件进行验证 1. 父传子 数组/对象 的两种写法 function App() {const obj [{age:19},{age:19}]return (<div className"App"><header classNa…

Jmeter常用参数化技巧总结

说起接口测试&#xff0c;相信大家在工作中用的最多的还是Jmeter。 JMeter是一个100&#xff05;的纯Java桌面应用&#xff0c;由Apache组织的开放源代码项目&#xff0c;它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA 等多种协议。 在做…

uniapp之使用map组件显示接收过来的经纬度

目录 前言 效果图 提示 总代码 分析 1.显示自己位置的属性 2.markers 点标记 前言 由于项目的需求&#xff0c;我需要从主页面接收经纬度&#xff0c;并渲染至地图上面&#xff0c;同时呢&#xff0c;也要在该位置上显示图标标记点&#xff08;红色&#xff09;&#x…

兴业数金 测试 面试真题|面经

兴业数金测试服务中心技术面&#xff08; 一面二面&#xff09; 时间线流程 8.12一面&#xff08;30min&#xff09;->8.31邮件通知二面&#xff0c;填写职位申请表->9.2二面&#xff08;25min&#xff0c;二面需要用小鱼易连&#xff0c;需提前下载和注册&#xff09; …

儿童台灯怎么选对眼睛最好?2022年的现在如何挑选儿童台灯呢

儿童台灯选择首要考虑因素就是护眼&#xff0c;而是否护眼&#xff0c;可以从以下几个角度去看。 一、照度。根据国家标准划分&#xff0c;照度可分为国A和国AA两级&#xff0c;它们可以衡量光线明亮程度和均匀程度&#xff0c;儿童台灯选择国AA级对眼睛最好。 二、显色指数。…

Java#19(面向对象三大特征之一:多态)

目录 一.多态 二.多态中调用成员的特点 三.instanceof关键字 一.多态 多态:同类型的对象,表现出的不同形态 格式:父类类型 对象名称 子类对象; 前提: (1)有继承关系 (2)有父类引用指向子类对象 (3)有方法重构 优点: (1)使用父类作为参数,可以接收所有子类对象 (2)体现多态的…

科技金融企业助力乡村振兴,能有多大新意?

最近几年&#xff0c;越来越多科技互联网企业开始承担起他们的社会责任&#xff0c;成为乡村振兴领域一股不可忽视的力量。作为电商平台&#xff0c;阿里、拼多多、京东助力农产品上行&#xff0c;解决农产品的销售难题&#xff0c;直接为乡村振兴领域做出大贡献&#xff0c;但…

罗丹明PEG活性酯 RB-PEG-NHS,罗丹明聚乙二醇活性酯,Rhodamine-PEG-NHS

产品名称 罗丹明聚乙二醇活性酯 RB-PEG-NHS 中文名称 罗丹明PEG活性酯 活性酯PEG罗丹明 活性酯聚乙二醇罗丹明 英文名称 RB-PEG-NHS RB-PEG-SC Rhodamine-PEG-NHS 分子量 400 600 1000 2000 3400 5000 10000 结构式&#xff1a; CAS N/A 溶解度 溶于DMSO,DMF,DCM&#xff…

Linux进阶-编译工具链

gcc编译器&#xff08;预处理、编译&#xff09; binutils工具集&#xff08;汇编、链接&#xff09; 本地编译&#xff1a;编译工具链和目标程序运行在相同的架构平台。 交叉编译&#xff1a;编译工具链和目标程序运行在不同的架构平台。 ARM-GCC是GCC编译工具链的一个分支…

Spring Data JPA审计

Spring Data JPA为跟踪持久性层的变化提供了很好的支持。通过使用审核&#xff0c;我们可以存储或记录有关实体更改的信息&#xff0c;例如谁创建或更改了实体以及何时进行更改。 我们可以利用实体字段上的CreatedBy,CreatedDate,LastModifiedDate,LastModifiedBy注释来指示 S…

PointNet 和 PointNet++ 作者讲座学习笔记

文章目录前人的工作三维数据的表达形式把点云转化为体素&#xff0c;再用3D CNNPointNet两个挑战置换不变性旋转不变性PointNet的分类网络PointNet的分割网络PointNet的限制PointNet多级点云特征学习分类分割小区域大小参考资料前人的工作 三维数据的表达形式 点云&#xff1…

Adaptive AUTOSAR Technology Sharing

文章目录一、目录二、未来汽车基础设施需求三、整车架构四、CP vs AP五、AP架构1.Execution Management与State Management的关系2.Service-oriented communication2.Diagnostic Management3.Persistency4.Log and Trace5.安全支持6.安全方法7.信息安全8. AutoSar&#xff1a;T…