2023-06-27:redis中什么是缓存雪崩?该如何解决?

举报
福大大架构师每日一题 发表于 2023/06/27 17:13:12 2023/06/27
【摘要】 2023-06-27:redis中什么是缓存雪崩?该如何解决?答案2023-06-27:缓存雪崩是指当缓存层承载大量请求并有效保护存储层时,如果缓存层由于某些原因无法提供服务,例如缓存数据大面积失效,那一瞬间 Redis 就像不存在一样,导致所有请求都到达存储层。存储层的请求量急剧增加,可能导致存储层级联宕机的情况发生。缓存雪崩,英文原意为"stampeding herd"(奔逃的兽群),形...

2023-06-27:redis中什么是缓存雪崩?该如何解决?

答案2023-06-27:

缓存雪崩是指当缓存层承载大量请求并有效保护存储层时,如果缓存层由于某些原因无法提供服务,例如缓存数据大面积失效,那一瞬间 Redis 就像不存在一样,导致所有请求都到达存储层。存储层的请求量急剧增加,可能导致存储层级联宕机的情况发生。

缓存雪崩,英文原意为"stampeding herd"(奔逃的兽群),形象地比喻了缓存层宕掉后,流量会像奔逃的兽群一样,涌向后端存储层。

预防和解决缓存雪崩问题,可以从以下四个方面入手:

1)确保缓存层的高可用性。与一架飞机拥有多个引擎类似,如果设计一个高可用的缓存层,即使个别节点、机器甚至整个机房宕掉,仍能提供服务。例如,Redis Sentinel和Redis Cluster都实现了高可用性。

2)依赖隔离组件进行后端流量限制和降级。无论是缓存层还是存储层,都存在出错的概率。将它们视为资源,并对并发较高的系统进行限流和降级,防止一个资源的不可用性导致线程阻塞(hang),从而造成整个系统不可用。

3)提前进行演练。在项目上线之前,进行缓存层宕掉后、应用和后端负载情况以及可能出现的问题的演练,以便制定相应预案。

4)随机分散缓存失效时间。例如,在原有失效时间的基础上增加一个随机值,如1-5分钟的随机范围,使每个缓存过期时间的重复率降低,从而减少集体失效事件的发生。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。