Redis--15--缓存穿透 击穿 雪崩

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 缓存穿透 击穿 雪崩
    • 运行速度:
    • 1 缓存穿透
      • 问题描述:
      • 如何解决:
    • 2 缓存击穿
      • 问题描述:
      • 如何解决:
    • 3 缓存雪崩
      • 说明:
      • 解决方案:


缓存穿透 击穿 雪崩

问题描述: 由于海量的用户的请求 如果这时redis服务器出现问题 则可能导致整个系统崩溃.

运行速度:

  1. tomcat服务器 150-250 之间 JVM调优 1000/秒
  2. NGINX 3-5万/秒
  3. REDIS 读 11.2万/秒 写 8.6万/秒 平均 10万/秒

1 缓存穿透

问题描述:

由于用户高并发环境下访问 数据库中不存在的数据时 ,容易导致缓存穿透.

缓存击穿是指一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个完好无损的桶上凿开了一个洞。

缓存击穿的话,设置热点数据永远不过期。或者加上互斥锁就能搞定了。

如何解决:

  1. 热点数据永不过期
  2. 使用互斥锁

业界比较常用的做法,是使用mutex。简单地来说,就是在缓存失效的时候(判断拿出来的值为空),不是立即去load db,而是先使用缓存工具的某些带成功操作返回值的操作(比如Redis的SETNX)去set一个mutex key,当操作返回成功时,再进行load db的操作并回设缓存;否则,就重试整个get缓存的方法。

伪代码如下图:

SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果

image.png

2 缓存击穿

量太大,缓存过期

问题描述:

由于用户高并发环境下, 由于某个数据之前存在于内存中,但是由于特殊原因(数据超时/数据意外删除)导致redis缓存失效. 而使大量的用户的请求直接访问数据库.
俗语: 趁他病 要他命
在这里插入图片描述

如何解决:

1. 设定超时时间时 不要设定相同的时间.
2. 热点数据永不过期

3. 设定多级缓存 在这里插入图片描述

4.缓存空对象

当存储层不命中,到数据库查发现也没有命中,那么仍然将空对象保留到缓存层中,之后再访问这个数据将会从缓存中获取,这样就保护了后端数据源。不过空值做了缓存,意味着缓存层中存了更多的键,需要更多的内存空间(如果是攻击,问题更严重),比较有效的方法是针对这类数据设置一个较短的过期时间,让其自动剔除。

5. 使用布隆过滤器

在这里插入图片描述

3 缓存雪崩

缓存雪崩是指在某一个时间段,缓存集中过期失效或者Redis宕机

说明:

由于高并发条件下 有大量的数据失效.导致redis的命中率太低.而使得用户直接访问数据库(服务器)导致奔溃,称之为缓存雪崩.

缓存雪崩:由于缓存层承载着大量请求,有效地保护了存储层,但是如果缓存层由于某些原因不能提供服务,比如同一时间缓存数据大面积失效,那一瞬间Redis跟没有一样,于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会级联宕机的情况。

解决方案:

  1. 保证缓存层服务高可用性
  2. 不要设定相同的超时时间 随机数 ,热点数据永不过期
  3. 提高redis缓存的命中率 调整redis内存优化策略 采用LRU等算法.
  4. 微软服务机制 API网关实现. (SpringCloudGateway 网关 限流 降级 熔断)
  5. 数据预热
  6. 设定多级缓存.
  7. 配置布隆过滤器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漂亮极了!分享我收藏的 16 款 VS Code 主题

你好,我是 EarlGrey,喜欢翻译点东西,偶尔写写代码。 点击下方卡片关注我,一起向上进击,提升自我。后台回复关键词“电子书”,送你一份我收藏的电子书合集。 Visual Studio Code(VS Code&#xf…

VMware安装OpenEuler(安装界面)

本文中使用的OpenEuler版本:22.03 LTS SP2 VMware:17.0.0 一、下载镜像 根据CPU和场景,按需下载 https://www.openeuler.org/zh/download/?versionopenEuler%2022.03%20LTS%20SP2 二、初始化VmWare 三、配置操作系统 四、安装操作系统 …

Python:核心知识点整理大全1-笔记

在本章中,你将运行自己的第一个程序——hello_ world.py。为 此,你首先需要检查自己的计算机是否安装了Python;如果没有安装, 你需要安装它。你还要安装一个文本编辑器,用于编写和运行Python 程序。你输入Python代码时…

【GD32307E-START】04 使用TinyMaix进行手写数字识别

【GD32307E-START】04 使用TinyMaix进行手写数字识别 参考博客 【GD32F427开发板试用】使用TinyMaix进行手写数字识别 https://blog.csdn.net/weixin_47569031/article/details/129009839 软硬件平台 GD32F307E-START Board开发板GCC Makefile TinyMaix简介 TinyMaix是国…

从马帮到金蝶云星空通过接口配置打通数据

从马帮到金蝶云星空通过接口配置打通数据 接入系统:马帮 上海马帮科技有限公司,是一家专注于提供全流程跨境电商ERP管理软件解决方案的企业。聚焦服务于各阶段、各领域的跨境电商从业者,旗下包含专业版ERP、亚马逊专用版ERP、东南亚海外版ERP…

SimCSE论文阅读

正负样本对构建原理正样本pair:one sentence two different embeddings as “positive pairs”. (通过dropout 作为噪声)负样本pair:Then we take other sentences in the same mini-batch as “negatives”任务: the model predicts the pos…

cup型号的意思

CPU 在整个计算机硬件中、技术体系中都算是最最重要的东西了。在 10 月 16 号的时候,Intel 正式发布了第 14 代的酷睿处理器。 一、Intel 的 CPU 型号规则 无论是哪家 CPU 厂商,为了更好地管理自己生产的众多型号的产品,也为了能更好地让消…

学生使用台灯到底好不好?学生备考台灯分享

普通台灯的出现只是为了照明,且它的功能也就只有照明,像是眩光、蓝光、频闪、过亮过暗等等都是普通台灯所存在的问题,而这些问题也正是造成我们眼睛近视、诱发眼部疾病的罪魁祸首,特别是正处于发育时期的青少年们,抵抗…

Anaconda【我的入门困惑】

为什么需要安装Anaconda ? 方便地安装和管理Python及其相关包:Anaconda提供了一个统一的管理界面,用户可以方便地查看和安装需要的Python版本和相关包。同时,它还提供了一个虚拟环境,可以帮助用户使不同的项目隔离开来…

继续画图带你学习TCP 其他 7 大特性

四、滑动窗口机制 五、流量控制 六、拥塞控制 (安全机制) 七、延迟应答 (效率机制) 八、捎带应答 (效率机制) 九、粘包问题 十、保活机制 TCP总结 四、滑动窗口机制 滑动窗口机制,是在可靠性的前提下,进一步地提高传输效率 认识滑动窗口 一发一收…

LLM-Intro to Large Language Models

LLM some LLM’s model and weight are not opened to user what is? Llama 270b model 2 files parameters file parameter or weight of neural networkparameter – 2bytes, float number code run parameters(inference) c or python, etcfor c, 500 lines code withou…

Matlab和python详解数独谜题问题

🔗 运行环境:Matlab、Python 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 &#x1f4…

爱德华|书客|飞利浦护眼台灯好不好用?多方位测评对比爆料!

说到护眼台灯相信大家都不陌生,很多办公族、学生党都会备上一台用于工作、学习。因为长时间的工作或者学习,会明显的感觉到眼睛疲劳和不适。而护眼台灯可以很好的解决这个难题,因为护眼台灯是经过科学的设计和研发的,护眼台灯可以…

苹果录屏功能在哪?提升你的使用体验

屏幕录制已成为人们日常生活中不可或缺的一部分,苹果设备内置了强大的录屏功能,允许用户捕捉屏幕上的活动,可是很多用户不知道苹果录屏功能在哪。本文将详细介绍如何使用苹果内置录屏功能,为用户提供全面的录屏解决方案。 苹果录屏…

ESP32 LVGL Gui-Guider的移植

使用参考: ESP32系列之LVGL(三):Gui-Guider的使用_esp32 lvgl-CSDN博客 1、拷贝文件: 按照上面的文章,使用Gui-Guider软件生成C代码之后,custom和generated是我们要使用到的文件,…

36、红外遥控(外部中断)

红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 硬件电路 基本发送与接收…

海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布

近日,由TC260(全国信息安全标准化技术委员会)归口 ,主管部门为国家标准化管理委员会,深圳海云安网络安全技术有限公司(以下简称“海云安”)等多家相关企事业单位共同参与编制的GB/T 43435-2023《…

鸿蒙Watch 页面跳转

新建页面 config.json 回自动注册 添加跳转 <button type"capsule" onclick"toStatusMonitor">状态检测</button>写跳转方法 import router from system.router;export default {data: {},onInit() {},onShow() {},toStatusMonitor() {rou…

GraphPad Prism 9:最强大的数据分析软件,助您轻松解析复杂数据!

您是否正在寻找一个功能强大、易于使用的数据分析软件&#xff1f;GraphPad Prism 9是您的最佳选择&#xff01;作为全球领先的科学数据分析工具&#xff0c;Prism 9提供了广泛的功能和先进的统计分析方法&#xff0c;帮助您轻松解析和可视化复杂的数据。 Prism 9不仅具备直观…

linux作业管理_jobs

4.2 作业管理 是指控制当前正在运行的进程的行为&#xff0c;也称为进程控制。 是shell的一个特性&#xff0c;使用户能在多个独立进程间进行切换。 例如&#xff0c;用户可以挂起一个正在运行的进程&#xff0c;稍后再恢复其运行。当用户使用vim编辑一个文本文件&#xff0c…
最新文章