Redis缓存击穿、缓存穿透、缓存雪崩场景描述及解决方案

news2024/9/20 20:24:44

Redis缓存击穿、缓存穿透、缓存雪崩场景描述及解决方案

缓存穿透

用户请求了很多既不存在于redis也不存在于数据库的无效数据请求,导致redis无法拦截,最终所有请求都落在数据库中
在这里插入图片描述
解决方案:缓存空对象(会导致redis中存了很多垃圾key,需要设计过期时间)、布隆过滤器(内存占用少,但也有误判率)
在这里插入图片描述

缓存雪崩

大量缓存数据在短时间内同时过期或者Redis宕机,导致大量请求落在数据库中
在这里插入图片描述

解决方案:

  • 针对过期问题,批量导入key时,在原有过期时间的基础上,再追加一个随机过期时间
  • 针对宕机问题,可以搭建Redis(主从哨兵)集群保证高可用;添加服务限流、降级措施、多级缓存

缓存击穿

热点数据(被高并发访问且计算过程比较复杂的key)到期失效,导致大量请求落在了数据库上面
在这里插入图片描述
解决方案:

1、使用互斥锁保证只有一个线程去查询数据库并且添加缓存,但对性能有一定影响
在这里插入图片描述

2、配置热点数据永不过期

3、添加逻辑过期字段(佛系,将就着用旧的数据,不保证一致性)。当访问的数据是逻辑过期时,获取锁,然后开启一个子线程去查询数据库并更新缓存,然后自己立马返回旧的缓存数据。当有其它请求想查询这个数据时,也发现过期了,但获取锁失败,此时会立刻返回旧的数据。

在这里插入图片描述

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

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

相关文章

The Magic Loop-快速职业发展的框架

前言 在 B2B 系列中短暂休息一下,我很高兴为你带来 Ethan Evans 的重要客座文章。在 Amazon 的 15 年里,Ethan 帮助发明了 Prime Video、Amazon Video、Amazon Appstore、Prime Gaming(以前称为 Twitch Prime)和 Twitch Commerce…

电阻器件选型

电阻参数 一般都是(前面数字x10^末尾数字),如下面的例子 大概清楚电阻的结构即可,无需掌握 电阻器安装在陶瓷基板的上面;在每一端都有内部金属电极,使其与厚膜电阻体接触;电阻原件的成分是金…

第144天:内网安全-Linux权限维持OpenSSHPAM后门SSH软链接公私钥登录

目录 案例一: 权限维持-Linux-替换版本-OpenSSH 后门 案例二: 权限维持-Linux-更改验证-SSH-PAM 后门 案例三: 权限维持-Linux-登录方式-软链接&公私钥&新帐号 ssh软链接 公私钥 新帐号 案例一: 权限维持-Linux-替换…

一. Unity实现虚拟摇杆及屏幕自适应功能

手游里面很多类型的游戏都需要用到遥感功能,例如王者荣耀,和平精英等,之前的摇杆功能都是用类似于Easy Touch的插件进行开发的,今天不借助任何插件来实现虚拟摇杆的功能。 一般虚拟摇杆的组成都是由轮盘和遥感的点组成&#xff0c…

二百六十二、Java——打开别人项目时缺少maven配置,无法运行文件

一、目的 在打开别人的项目时,发现Java文件类型显示出错,没有application,无法运行文件 二、报错原因 项目缺少maven配置 三、解决措施 File——Setting——Maven 修改Maven的配置,指向Maven路径 四、重启项目 文件恢复正常…

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(wa…

跨境外贸业务使用新加坡裸机云站群服务器优势

在全球化的今天,跨境外贸业务正变得越来越普遍。随着互联网技术的发展,越来越多的企业选择使用云计算服务来支持其国际业务。新加坡作为一个国际金融中心和亚洲的数据枢纽,提供了优质的网络基础设施,使其成为设置裸机云站群服务器…

【vue3|第28期】 Vue3 + Vue Router:探索路由重定向的使用与作用

日期:2024年9月8日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉在这里插入代码片得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对…

第18届世界杰出华人奖得主王傲山:承父业展关怀,体现“圆桌”精神

王傲山博士是“保二代”,由父亲言传身教及自孩提时代刻在骨子里的氛围,让他理所当然地传承父亲保险助人为乐的精神。在保险行业打滚两旬余,他成就多项傲人的成绩、取得个人成就的同时,以更高的指标作为团队精神,秉持追…

苹果手机qq原文件失效怎么恢复?4个方法,让失效变有效!

热门提问:在QQ上的文件忘记下载了,文件已经过期且无法打开,有什么方法可以恢复这些失效的文件呢? 小编这里有4个靠谱的方法,可以解决苹果手机QQ原文件失效怎么恢复的问题。只要大家掌握了这4个方法,让苹果…

【如何在鼠标右键添加Typora软件(使用脚本)】

下载Typora后,希望右键新建文件时候,可以新建md文件。 使用下面的注册脚本就可以实现: Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.md] "Typora.md" "Content Type""text/markdown" "Per…

C语言---函数指针基础总结万字(4)

一、 函数 1.函数是一段可以重复执行的代码。 它可以接受不同的参数, 完成对应的操作。 下面的例子就是一个函数 int plus(int n) {return n; }上面的代码声明了一个函数plus()。 2.函数声明的语法有以下几点,需要注意。 返回值类型。 函数声明时&a…

Mac电脑IDEA2024安装后打不开问题解决

Mac电脑IDEA2024安装后打不开问题解决 由于电脑系统升级,导致我用的2019版本的IDEA一打开就卡,机缘巧合拥有了一个正版的IDEA账号,下载2024版本的IDEA,打开报错。 由于电脑系统升级,导致我用的2019版本的IDEA一打开就卡…

Day20_0.1基础学习MATLAB学习小技巧总结(20)——MATLAB绘图篇(3)

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 参考书目:《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是…

项目实战系列三: 家居购项目 第五部分

&#x1f333;显示订单[订单管理] &#x1f333;暂时缺货 需求分析 1.如果某家居库存为0, 首页的"Add to Cart" 按钮显示为"暂时缺货" 2.后台也加上校验. 只有在 库存>0 时, 才能添加到购物车 代码实现 1.修改web/views/customer/index.jsp <c:if…

网络层 VIII(网络层设备——路由器)【★★★★★★】

一、冲突域与广播域 这里的“域”表示冲突或广播在其中发生并传播的区域。 1. 冲突域 冲突域是指连接到同一物理介质上的所有结点的集合&#xff0c;这些结点之间存在介质争用的现象&#xff08;能产生冲突的所有设备的集合&#xff09;。也就是说&#xff0c;若这些设备同时发…

ABeam德硕 | 海立集团BI项目正式启动,ABeam中国助力实现以数据之力驱动经营管理

9月2日&#xff0c;由德硕管理咨询&#xff08;上海&#xff09;有限公司作为实施合作伙伴的海立集团BI项目正式启动&#xff0c;海立集团党委书记、总经理缪骏、ABeam大中华区董事长兼总经理中野洋辅出席项目启动仪式。 ABeam大中华区董事长兼总经理中野洋辅 在致辞中表示&am…

【vue+el-table】表格操作列宽度跟随按钮个数自适应, 方法封装全局使用

效果图 以上图片分别代表不同用户权限下所能看到的按钮个数, 操作列宽度也会自适应宽度, 就不会一直处于最大宽度, 导致其他权限用户看到的页面出现大量留白问题. 目录 解决方法解决过程中可能出现的问题width赋值时为什么不放update()中btnDom为什么不能直接调用forEach为…

【网络原理】❤️Tcp 连接管理机制❤️ “三次握手” “四次挥手”的深度理解, 面试最热门的话题,没有之一, 保姆式教学 !!!

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

杰发科技Bootloader(3)—— 基于7801的APP切到Boot

为了方便在APP中跳转到Boot重新进行升级&#xff0c;有两种办法&#xff0c;7840同样可以使用。 1. 调用reset接口进行复位&#xff0c;复位后会先进Boot&#xff0c;再自动跳转到App。 NVIC_SystemReset(); 2. 直接使用跳转指令&#xff0c;参考Boot跳转到App代码&#xff0…