redis雪崩、穿透、击穿和解决方案

在这里插入图片描述

1. redis雪崩

大量的缓存数据同时时间失效,导致用户直接发起大量请求到数据库

  1. 生成随机失效的缓存时间数据,使缓存不会在同一时间失效
  2. 集群部署,热点的key分别在不同的节点上
  3. 不设置缓存失效的时间
  4. 定时任务更新缓存的数据
2. redis穿透

用户请求数据,例如ID为负数,不存在缓存里,也不存在数据库里,就会造成缓存击穿

  1. 无意义的数据放入缓存,下一次相同的请求就会命中缓存
  2. IP过滤
  3. 参数校验
  4. 布隆过滤器
3. 击穿

由于缓存的热点键到时失效导致用户的请求直接访问数据库

  1. 使用永久缓存
  2. 用分布式锁

解决方案:布隆过滤器,分布式锁

4. 项目上线准备和措施
  1. 上线前准备

    redis集群、Mysql集群、 项目本身的分布式集群

  2. 项目运行准备

    限流降级,防止大量的数据直接防止数据库

  3. 项目宕机的措施

    集成报警系统 通知开发人员,快速重启项目,利用redis的RDB和aof持久化机制快速恢复缓存数据

https://www.bilibili.com/video/BV1f5411b7ux

https://blog.csdn.net/kongtiao5/article/details/82771694

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值