首页 > 数据库 >Redis 缓存穿透,缓存击穿,缓存雪崩

Redis 缓存穿透,缓存击穿,缓存雪崩

时间:2023-01-28 15:11:05浏览次数:59  
标签:load 缓存 db 击穿 线程 雪崩 Redis

缓存击穿

缓存击穿指的是缓存中没有数据但数据库中有数据(一般是热点数据缓存时间到期),同一时间大量的并发请求由于读缓存没读到数据,就去数据库去取数据,导致某个时间内数据库压力剧增,导致崩溃。

缓存击穿的解决方案:

1.设置热点数据永远不过期(可以判断当前key快要过期时,通过后台异步线程在重新构建缓存)

2.接口限流与熔断,降级。重要的接口一定要做好限流策略,防止用户恶意刷接口,同时要降级准备,当接口中的某些服务不可用时候,进行熔断,失败快速返回机制。

3.设置互斥锁。在并发的多个请求中,只有第一个请求线程能拿到锁并执行数据库查询操作,其他的线程拿不到锁就阻塞等着,等到第一个线程将数据写入缓存后,直接走缓存。

(可以使用 Redis 分布式锁)

(1) 就是在缓存失效的时候(判断拿出来的值为空),不是立即去load db。

(2) 先使用缓存工具的某些带成功操作返回值的操作(比如Redis的SETNX)去set一个互斥锁。

(3) 当操作返回成功时,再进行load db的操作,并回设缓存,最后删除mutex key;

(4) 当操作返回失败,证明有线程在load db,当前线程睡眠一段时间再重试整个get缓存的方法。

标签:load,缓存,db,击穿,线程,雪崩,Redis
From: https://www.cnblogs.com/Acaak/p/17070343.html

相关文章

  • c#的Redis帮助类
    ///<summary>///Redis帮助类///</summary>publicclassRedisHelper:IDisposable{privatestaticreadonlyobjectLocker=newobj......
  • redis集群之间数据迁移工具redis-migrate-tool测试
    1、学习背景,四川广电redis分布式缓存存在数据迁移,因此需要迁移对应的数据到新建集群;2、redis-migrate-tool特性1)快速,多线程2)支持异构迁移,支持twemproxy集群,rediscluste......
  • RedisCluster集群模式下master宕机主从切换期间Redis command timed out的问题
     一、异常场景如下表所示,redis集群6个节点分别部署在3台机器上,每台机器分布一个主节点和一个从节点机器redis主节点端口redis从节点端口主机170017004主......
  • 【分布式技术专题】「分布式缓存专题」针对性分析缓存与数据库一致性如何解决
    数据缓存由来在实际的业务场景中,一定有很多需要做数据缓存的场景,比如售卖商品页面,包括了许多并发访问量很大的数据,它们可以称作是是"热点”数据,这些数据有一个特点,就是更新......
  • vue路由缓存的三种方式
    1.全部缓存使用Keep-alive标签包裹router-view就可以实现全部缓存<keep-alive><router-view></router-view></keep-alive>2.缓存单个指定的路由同样使用Keep-ali......
  • 缓存雪崩
    缓存雪崩缓存项集中过期导致缓存雪崩解决方法:在基础过期时间之上,再加一个随机的过期时间通常在绝对过期时间上加(因为滑动过期时间是不确定的,而绝对是必然也是大体所......
  • 缓存穿透
    缓存穿透目前我理解的缓存穿透就是缓存无法传入null值而导致频繁查询数据库。我们模拟查找一个id为3不存在的书,首先是在缓存中查不到为null,然后去数据库也查不到,而Set又......
  • 浅试netcore缓存
    1.介绍我的理解缓存好比记忆细胞,浏览器请求就好比病毒。当我们经历过一次新冠感染后,身体便会产生对应记忆细胞,下次同种新冠再次入侵,我们体内便会快速调度记忆细胞进行识别......
  • 用Java写一个分布式缓存——缓存管理
    前言之前也用过一些缓存中间件,框架,也想着自己是不是也能用Java写一个出来,于是就有了这个想法,打算在写的过程中同步进行总结源码:weloe/Java-Distributed-Cache(github.co......
  • 学习笔记——redis数据类型(ZSet)
    2023-01-27一、redis数据类型(ZSet)redis中的zset是一个有序集合,是一个没有重复元素的字符串集合。注意:①zset中的每个成员都关联了一个评分,这个评分是从最低分到最高分的......