Redis缓存雪崩问题

概念

由于缓存层承载着大量请求, 有效地保护了存储层, 但是如果缓存层由于某些原因不能提供服务(大量的缓存数据过期), 于是所有的请求都会达到存储层, 存储层的调用量会暴增, 造成存储层也会级联宕机的情况。

解决方案

1)保证缓存层服务高可用性。 和飞机都有多个引擎一样, 如果缓存层设计成高可用的,将热点数据均匀分布在不同的服务器中, 即使个别节点、 个别机器、 甚至是机房宕掉, 依然可以提供服务。

2)依赖隔离组件为后端限流并降级。 无论是缓存层还是存储层都会有出错的概率, 可以将它们视同为资源。 作为并发量较大的系统, 假如有一个资源不可用, 可能会造成线程全部阻塞在这个资源上, 造成整个系统不可用。缓存降级时不访问数据库直接访问内存中的部分缓冲数据或者直接返回默认数据。

3)提前演练。 在项目上线前, 演练缓存层宕掉后, 应用以及后端的负载情况以及可能出现的问题, 在此基础上做一些预案设定。

4)设置热点数据永不过期。以及其他缓存数据(非热点)的过期时间设置为随机,防止在同一时间段内大量缓存数据同时过期。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值