介绍:
缓存中存放的⼤多都是
热点数据
,⽬的就是防⽌请求可以直接从缓存中获取到数据,⽽不⽤访问
Mysql。
1、缓存雪崩:
如果缓存中某⼀时刻⼤批热点数据同时过期,那么就可能
导致⼤量请求直接访问Mysql
了,解决办法就是
在过期时间上增加⼀点随机值
,另外如果搭建⼀个
⾼可⽤的Redis集群
也是防⽌缓存雪崩的有效⼿段
2、缓存击穿:
和缓存雪崩类似,缓存雪崩是
⼤批热点数据失效
,⽽缓存击穿是指
某⼀个热点key突然失效
,也导致了⼤量请求直接访问Mysql数据库,这就是缓存击穿,解决⽅案就是
考虑这个热点key不设过期时间
3、缓存穿透:
假如
某⼀时刻访问redis的⼤量key都在redis中不存在
(⽐如⿊客故意伪造⼀些乱七八糟的key),那么也会给数据造成压⼒,这就是缓存穿透,解决⽅案是使⽤
布隆过滤器
,它的作⽤就是如果它认为⼀个key不存在,那么这个key就肯定不存在,所以可以
在缓存之前加⼀层布隆过滤器来拦截不存在的key
![](https://i-blog.csdnimg.cn/blog_migrate/fa6af652a7dc370a2f97fe9302e56022.webp?x-image-process=image/format,png)