Redis缓存穿透和雪崩

一、缓存雪崩

1. 缓存挂了,所有请求都到了数据库了

2. 缓存没有挂,但同时到期,正好把所有缓存都删除了,所有请求都到了数据库了

3. 所有请求都到了数据库,很可能把数据库搞挂

二、缓存雪崩的解决方法

1. 缓存挂了的情况

a. 事发前:实现redis的高可用性(主从+sentinal+cluster)

b. 事发时:本地缓存+限流(hystrix)

c. 事发后:Redis持久化,重启后从磁盘上加载数据,快速恢复

三、缓存穿透

1. 查询一个不存在的数据,由于没有从数据库里查到,就不放入缓存,所以不存在的数据每次都要到数据库里查询

2. 请求的数据在缓存里大量不命中,导致请求到了数据库,就叫缓存穿透

四、缓存穿透的解决方法

1. 校验参数

2. 把空对象也放入缓存,并设置一个较短的过期时间

猜你喜欢

转载自www.cnblogs.com/june0816/p/11463036.html