redis缓存穿透、击穿、雪崩

  • Post author:
  • Post category:其他




1、缓存穿透



缓存穿透


:指在redis缓存中不存在数据,这个时候只能去访问持久层数据库,当用户很多时,缓存都没有命中就会照成很大压力



解决方案




(1)布隆过滤器(对可能查询的数据先用hash存储)

(2)缓存空对象:在没有的数据中存一个空,而这些空的对象会设置一个有效期)



2、缓存击穿



缓存击穿


:指在同一个时间内访问一个请求的请求数过多,而在这个时候缓存某个key失效了,这个时候就会冲向数据库照成缓存击穿



解决方案




(1)设置缓存永远不过期

(2)加互斥锁,使用分布式锁,保证每个key只有一个线程去查询后端服务,而其他线程为等待状态。这种模式将压力转到了分布式锁上



3、缓存雪崩



缓存雪崩


:在某个时间段,缓存集体过期、redis宕机



解决方案


:给key的失效时间设置为随机时间,避免集体过期;双缓存;加互斥锁



版权声明:本文为weixin_44975592原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。