Redis的缓存击穿、穿透、雪崩
发表于|更新于|技术博客
|总字数:278|阅读时长:1分钟|浏览量:
缓存穿透
缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到数据库,从而压垮数据库。
解决方式:
- 业务层校验: 对于参数明显错误的直接拒绝;
- 查询不存在数据设置短时间过期;
- 布隆过滤器;
缓存击穿
Redis中一个热点key在失效的同时,大量的请求过来,从而会全部到达数据库,压垮数据库。
解决方式:
- 热点key 永不过期;
- 定时更新;热点key过期时间1h,设置59分钟时进行更新;
- 互斥锁
缓存雪崩
Redis中缓存的数据大面积同时失效,或者Redis宕机,从而会导致大量请求直接到数据库,压垮数据库。
解决方式:
- 单机环境,防止redis宕机可使用redis集群(哨兵、集群);
- 设置key过期时间的有效均匀分布;
- 数据预热,提前将可能使用数据保存缓存中;
文章作者: MUMU
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 blog.wo0ow.com!