Redis缓存穿透和雪崩

爷,独闯天下 提交于 2019-11-29 08:33:37

一、缓存雪崩

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

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

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

 

二、缓存雪崩的解决方法

1. 缓存挂了的情况

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

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

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

 

三、缓存穿透

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

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

 

四、缓存穿透的解决方法

1. 校验参数

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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!