Redis的雪崩,击穿,穿透

news/2024/11/28 23:34:01/

雪崩是大面积的key缓存失效;

穿透是redis里不存在这个缓存key;

击穿是redis某一个热点key突然失效;

最终的受害者都是数据库

雪崩:


高并发下,大量缓存在redis中的key在同一时间失效,导致大量请求直接请求到数据库上,导致数据库宕机。

解决方案

  • 随机设置key失效时间,避免大量key集体失效。

setRedis(Key,value,time + Math.random() * 10000); 复制代码

  • 若是集群部署,可将热点数据均匀分布在不同的Redis库中也能够避免key全部失效问题
  • 不设置过期时间
  • 跑定时任务,在缓存失效前刷进新的缓存

穿透:


用户查询的数据在redis缓存数据库中均没有相关数据(例用户直接携带id<=0的参数不断发起请求),redis中没有这样的数据,无法进行拦截,直接被穿透到数据库,大量到请求频繁穿透的数据库,导致数据库压力过大宕机。

解决方案

  • 对不存在的数据缓存到redis中,设置key,value值为null(不管是数据未null还是系统bug问题),并设置一个短期过期时间段,避免过期时间过长影响正常用户使用。
  • 拉黑该IP地址
  • 对参数进行校验,不合法参数进行拦截

击穿:


热点数据key,在不停地扛着高并发,当这个热点key在失效的一瞬间,持续的高并发访问就击破缓存直接访问数据库,导致数据库宕机。


解决方案

  • 设置热点数据"永不过期"
  • 加上互斥锁:上面的现象是多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个互斥锁来锁住它
    其他的线程走到这一步拿不到锁就等着,等第一个线程查询到了数据,然后将数据放到redis缓存起来。后面的线程进来发现已经有缓存了,就直接走缓存

参考:  Redis的雪崩,击穿,穿透详解_希望之光芒的博客-CSDN博客


http://www.ppmy.cn/news/615747.html

相关文章

月之魂

月之魂 含情脉脉的朦胧 娇艳欲滴的美 像一场玄幻的梦境 轻轻舞动的娉婷 杨柳岸晓风拂面 依稀间追忆绵绵 何时逗惹了你 竟惩罚我万般思念

冰封王座1.17版新英雄研究之火焰领主

原链接如下&#xff1a; http://game.dayoo.com/content.php?id24074 《冰封王座》1.17版新英雄研究之火焰领主 火焰领主  很久以前&#xff0c;当世界还是处在一个恒定混乱的状态时&#xff0c;元素们包括风&#xff0c;土&#xff0c;火和水都忠实地服务于他们的主宰&…

【UE4】模仿《黑暗之魂》系列游戏制作一个简单的锁定敌人的功能

这是我拆解游戏项目的CameraSystem做出的一点点小总结&#xff0c;然后写了一个非常非常简单的锁定敌人的功能&#xff1a; 第一步&#xff1a;设置敌人属性&#xff0c;标志为可被锁定 创建一个敌人蓝图&#xff0c;随便搞个模型进去 创建一个接口蓝图&#xff0c;设置两个功…

Redis并发问题(雪崩、击穿、穿透)

前言 Redis作为目前最火的NoSQL数据库&#xff0c;在大量互联网企业作为重要的核心技术&#xff0c;Redis作为数据库的缓存&#xff0c;在高并发情况下也会出现各种问题&#xff0c;下面我们来了解这些问题以及解决方案&#xff0c;这些也是程序员面试时的高频问题。 Redis的…

冰封王座1.17版新英雄研究之地精炼金术士

原文链接如下&#xff1a;http://game.dayoo.com/content.php?id24073《冰封王座》1.17新英雄之地精炼金术士 在冰封世界进入到1.17时代得时候&#xff0c;地精家族继地精修补匠之后又诞生了一位伟大的英雄&#xff0c;那就是地精炼金术士。让我们看看这位闪亮登场的新英雄都有…

冰与火之歌

冰与火之歌 当代被冠以史诗名号的东西本来就不多&#xff0c;遑论一部奇幻小说。 最近在朋友力荐下看了《冰与火之歌》&#xff0c;一开始不解这种题材的作品能出彩到哪里去&#xff0c;读完之后&#xff0c;唯有赞叹。相比之下&#xff0c;《魔兽世界》剧情小说显得那么粗糙无…

Redis学习04——主从复制、哨兵模式、缓存击穿、穿透、雪崩

文章目录 1. 主从复制1.1 概述1.2 作用 2. 哨兵模式3. 缓存穿透3.1 描述3.2 解决方案 4. 缓存击穿4.1 描述4.2 解决方案 5. 缓存雪崩5.1 描述5.2 解决方案 1. 主从复制 1.1 概述 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的 Redis 服务器。前…

Tendis(Redis)冷热混合存储怎么解决缓存击穿、雪崩、一致性3大难题

导语 缓存由于高并发和高性能的特性&#xff0c;经常被用于提高数据库的性能。但是业务往往需要花费大量精力来维护缓存和数据库的一致性。由IEG技术运营部/存储与计算资源中心 & 腾讯云数据库团队联合打造的 TendisX 冷热混合存储&#xff0c; 使用 Redis 作为缓存&#x…