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

Redis中的缓存穿透、缓存击穿、缓存雪崩(面试版)

缓存穿透

缓存穿透:查询一个不存在的数据,在mysql数据库中查询不到数据也不会写入缓存,导致每次请求都查询数据库,增加数据库负载。

解决办法:

1、缓存空值:将数据库中不存在的结果(例如空值)也缓存起来,并设置一个较短的过期时间,避免频繁查询数据库

2、使用布隆过滤器:使用布隆过滤器来快速判断一个请求的数据是否存在,如果布隆过滤器判断数据不存在,则直接返回,避免查询数据库。

  • 布隆过滤器原理:

3、防止非法请求:检查非法请求,封禁其IP以及账号

缓存击穿

缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好对这个key有大量的请求过来,这些并发的请求可能会瞬间把DB压垮

解决办法:

1)加互斥锁:保证同一时间只有一个请求来构建缓存,跟缓存雪崩相同。

2)热点数据永不过期:不要给热点数据设置过期时间,在后台异步更新缓存

缓存雪崩

缓存雪崩是指在某个时间点,大量缓存同时失效或被清空,导致大量请求到达数据库或后端系统,造成系统负载激增,甚至引发系统崩溃,这通常是由于缓存中的大量数据在同一时间失效引起的。

解决办法:

1、设置过期时间随机化:设置缓存的过期时间,加上一个随机值,避免同一时间大量缓存失效。

2、使用多级缓存:引入多级缓存,如Guava或Caffeine作为一级缓存,redis作为二级缓存。

3、构建集群:构建多个 Redis 集群提高服务的可用性

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • matlab 创建复数数组
  • SQL典型练习题
  • 云渲染解决:笔记本渲染很伤电脑吗?如何保护你的电脑?
  • 【计算机组成原理】2.2.6 数据的存储和排列
  • Linux Ubuntu 桌面环境概览
  • 【视频讲解】主成分分析原理与水果成熟数据实例:Python中PCA-LDA 与卷积神经网络CNN...
  • OpenAI 将向企业开放 GPT-4o 模型定制版
  • SQL进阶技巧:如何按任意时段分析时间区间问题? | 分区间讨论【左、中、右】
  • 汽车小程序怎么做 汽车服务小程序系统开发制作方法
  • python自动化脚本:让工作自动化起来
  • 视频活码的快捷制作方法,轻松将多种格式视频生码
  • CPU、MPU、MCU、SOC分别是什么?
  • vue2.0纯前端预览附件方法汇总
  • Linux | 探究C语言文件接口与Linux系统文件接口的区别与联系 | fopen和open的区别与联系
  • vue预览全景图片
  • create-react-app做的留言板
  • es6--symbol
  • Intervention/image 图片处理扩展包的安装和使用
  • Java,console输出实时的转向GUI textbox
  • Redis中的lru算法实现
  • v-if和v-for连用出现的问题
  • web标准化(下)
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 两列自适应布局方案整理
  • 排序算法学习笔记
  • ​插件化DPI在商用WIFI中的价值
  • ​虚拟化系列介绍(十)
  • ​一些不规范的GTID使用场景
  • ​字​节​一​面​
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #stm32整理(一)flash读写
  • #vue3 实现前端下载excel文件模板功能
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.ajax,axios,fetch三种ajax请求的区别
  • (8)STL算法之替换
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (HAL库版)freeRTOS移植STMF103
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (十三)Flink SQL
  • (未解决)macOS matplotlib 中文是方框
  • (小白学Java)Java简介和基本配置
  • (译) 函数式 JS #1:简介
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)VC++中ondraw在什么时候调用的
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .gitignore文件---让git自动忽略指定文件
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net framework 4.8 开发windows系统服务
  • .NET 解决重复提交问题
  • .NET 药厂业务系统 CPU爆高分析
  • .NET构架之我见
  • .net解析传过来的xml_DOM4J解析XML文件
  • .Net组件程序设计之线程、并发管理(一)