redis雪崩,穿透,击穿
2021-05-26 本文已影响0人
指下光年
redis雪崩
什么是redis穿透?
- 查询一个一定不存在的数据,由于缓存是没有命中时被动写的,并且出于容错考率,若从存储层查不到数据则不写入缓存
- 将导致这个不存在的数据每次请求的数据都要到数据库里面去查询,没有达到缓存的效果
发生场景
极短的时间内发生多个请求,大部分请求没有缓存中不存在,去数据库也查不到
解决方案
如果查询返回的数据为空,也进行缓存,过期时间设置的短一点
redis 雪崩
什么时redis雪崩?
- 缓存中大批量的热点数据国企后系统涌入大量查询请求
- redis缓存中不存在数据或已失效,请求会落到数据库层,引起数据库查询速度慢,甚至出现故障
发生场景
多个请求落到数据库
解决方案
- 避免redis宕机,redis高可用,主从+哨兵
- 限流,降级
- redis持久化
redis 击穿
什么是redis击穿?
某一热点key失效,直接请求数据库
击穿、雪崩区别
击穿针对的是某一个key缓存,雪崩是多个key
发生场景
秒杀场景,同一时间访问同一数据,数据刚好过期
解决方案
- 热点数据永不过期
2.互斥锁,请求完成释放