redis(2)

redis(2)
什么是缓存雪崩

设置缓存时许多资源采用了相同的过期时间,导致在某一时刻大量缓存失效,所有的请求转发到数据库,导致数据库瞬时压力过大所导致雪崩,他与缓存击穿的区别是,击穿是一个资源过期,同时多个请求对该资源进行访问;雪崩是在某一瞬间大量缓存过期。

解决方案

将缓存过期时间分散开,可以在原有过期时间后面添加一个随机时间,这样每一个缓存的过期时间重复率就会降低,这样在一定程度上可用避免大量资源缓存时间过期。

总结

穿透无中生有key,布隆过滤null隔离。
缓存击穿过期key,锁与非期解难题。
雪崩缓存过期key,过期时间要随机。

缓存穿透的原因是查询不存在的数据,解决的方法是采用布隆过滤器,或者将不存在的数据经数据库返回的空值存放在缓存中
缓存击穿的原因是过期了一个资源,这个资源还有大量请求访问,解决的方法是采用分布式锁,或者采用逻辑过期的方式解决。
缓存雪崩的原因是大量资源过期,所有的请求都去数据库访问,数据库压力瞬间增大,直接崩溃,解决的方法是过期时间不要
相同,这样极大可能会避免大量资源缓存过期。
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值