Redis6之穿透、击穿、雪崩

        大量的高并发的请求打在Redis上,但是发现Redis中并没有请求的数据,redis的命令率降低,所以这些请求就只能直接打在DB(数据库服务器)上,在大量的高并发的请求下就会导致DB直接卡死、宕机。

 缓存穿透

        当客户端大量请求缓存和数据库都不存在的值

解决方式

        1.在缓存中添加一个为null的空值

        2.实时监控

        3.接口校验,对于无效访问直接拦截,不请求到redis和数据库

        4.使用BitMap作为布隆过滤器,将目前所有可以访问到的资源通过简单的映射关系放入到布隆过滤器中,进行判断如果有那么才进行放行,否则就直接拦截

缓存击穿

        当客户端大量请求访问缓存中某个过期数据,导致请求直接访问数据库

解决方式

        1.提前设置热点数据

        2.使用锁机制

        3.监控哪些数据是热门数据,实时的调整key的过期时长

缓存雪崩

        当客户端访问,大量缓存数据过期,导致请求直接访问数据库

解决方式

        1.将失效时间随机设置,防止集体过期

        2.使用锁或队列

        3.记录缓存数据是否过期,如果过期会触发通知另外的线程在后台去跟新实际的key

        4.构建多级缓存,比如redis缓存、本地缓存,使得不同的缓存有差异化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值