缓存雪崩 穿透 击穿
缓存雪崩
在某一时刻 大量缓存在同一时刻失效 导致大量请求打到数据库中 将数据库打摊
解决方案:
将缓存失效时间随机设置到1-5分钟内 这样就避免了在 一段时间内 缓存数据大量失效
缓存击穿
类似缓存雪崩 不同的是缓存穿透是由单个数据失效 高并发场景下 大量请求打到数据库中 导致数据库宕机
解决方案:
可以将热点数据失效设置为永不失效
可以添加互斥锁 只有拿到锁的用户才能进行访问
缓存穿透
这种情况是 访问不存在的数据 因为数据不存在 数据库和redis中都查不到数据 恶意用户会频繁访问不存在的数据 因为缓存中没有数据 则跳过redis 直接访问数据库 将数据库打宕机
解决方案:
可以添加将空数据存入缓存中 并设置一个失效时间
使用布隆过滤器
虽然道路是曲折的,但前途是光明的。

浙公网安备 33010602011771号