千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > redis 缓存穿透,击穿,雪崩

redis 缓存穿透,击穿,雪崩

来源:千锋教育
发布人:zyh
时间: 2023-05-29 17:58:00 1685354280

  Redis 缓存穿透、击穿、雪崩是一些常见的缓存问题,下面简要介绍一下:

redis 缓存穿透,击穿,雪崩

  1. 缓存穿透

  缓存穿透是指无论是新数据还是旧数据,都无法在缓存中找到对应的值,从而导致请求一直访问后端数据库。造成缓存穿透的原因通常是恶意攻击或者缓存中没有需要的值。

  解决方案:

  - 缓存空值,即使请求一个不存在的键也将空值存储在缓存中,以后的请求就可以直接从缓存中获取空值,降低对后端数据库的压力。

  - 布隆过滤器,先判断请求的键是否存在于缓存中,不存在就直接返回空值。

  2. 缓存击穿

  缓存击穿是指缓存中没有但数据库中存在的数据,在高并发情况下,突然有大量的请求访问这些不存在的数据,导致数据库压力过大。

  解决方案:

  - 加锁,对缓存空失效的情况进行加锁,只有一次性地从数据库加载数据并更新缓存中的键才能够解锁。

  - 提前预加载,提前在缓存中加载一些热门的数据,避免突然缓存穿透导致大量请求同时访问数据库。

redis 缓存穿透,击穿,雪崩

  3. 缓存雪崩

  缓存雪崩是指大量的缓存数据在同一时间失效,导致大量的请求直接打到数据库上,导致数据库崩溃。

  解决方案:

  - 缓存失效时间分散,通过在缓存中设置过期时间的随机性来分散缓存的失效时间,避免大量缓存同时失效。

  - 限流降级,设置系统限流,对请求进行限制,减小缓存雪崩的概率。

  - 双缓存策略,使用两级缓存结构,将请求分配到两个不同的缓存中,当一个缓存失效时,另一个缓存可以继续提供服务。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT