一、缓存雪崩
1. 缓存挂了,所有请求都到了数据库了
2. 缓存没有挂,但同时到期,正好把所有缓存都删除了,所有请求都到了数据库了
3. 所有请求都到了数据库,很可能把数据库搞挂
二、缓存雪崩的解决方法
1. 缓存挂了的情况
a. 事发前:实现redis的高可用性(主从+sentinal+cluster)
b. 事发时:本地缓存+限流(hystrix)
c. 事发后:Redis持久化,重启后从磁盘上加载数据,快速恢复
三、缓存穿透
1. 查询一个不存在的数据,由于没有从数据库里查到,就不放入缓存,所以不存在的数据每次都要到数据库里查询
2. 请求的数据在缓存里大量不命中,导致请求到了数据库,就叫缓存穿透
四、缓存穿透的解决方法
1. 校验参数
2. 把空对象也放入缓存,并设置一个较短的过期时间
原文地址:https://www.cnblogs.com/june0816/p/11463036.html
时间: 2024-10-05 04:19:35