redis雪崩,穿透,击穿

2021-05-26  本文已影响0人  指下光年

redis雪崩

什么是redis穿透?

  1. 查询一个一定不存在的数据,由于缓存是没有命中时被动写的,并且出于容错考率,若从存储层查不到数据则不写入缓存
  2. 将导致这个不存在的数据每次请求的数据都要到数据库里面去查询,没有达到缓存的效果

发生场景
极短的时间内发生多个请求,大部分请求没有缓存中不存在,去数据库也查不到

解决方案
如果查询返回的数据为空,也进行缓存,过期时间设置的短一点

redis 雪崩

什么时redis雪崩?

  1. 缓存中大批量的热点数据国企后系统涌入大量查询请求
  2. redis缓存中不存在数据或已失效,请求会落到数据库层,引起数据库查询速度慢,甚至出现故障

发生场景
多个请求落到数据库

解决方案

  1. 避免redis宕机,redis高可用,主从+哨兵
  2. 限流,降级
  3. redis持久化

redis 击穿

什么是redis击穿?
某一热点key失效,直接请求数据库

击穿、雪崩区别
击穿针对的是某一个key缓存,雪崩是多个key

发生场景
秒杀场景,同一时间访问同一数据,数据刚好过期

解决方案

  1. 热点数据永不过期
    2.互斥锁,请求完成释放
上一篇下一篇

猜你喜欢

热点阅读