首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
缓存击穿应对:热点Key失效时如何稳住系统?

缓存击穿应对:热点Key失效时如何稳住系统?

热心网友
70
转载
2026-02-11

今天我们来攻克由单个热点Key引发的“击穿”危机,掌握加锁和异步更新的核心技巧。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

在上一篇《Redis缓存三大难题之缓存穿透:原理+解决方案,一文吃透!》中,我们深入探讨了“无中生有”的缓存穿透问题,很多同学反馈终于能分清“穿透”和“击穿”了。今天咱们趁热打铁,拆解第二个高频难题——缓存击穿。

这是秒杀、热点商品等高并发场景中最容易翻车的地方。先记住这个核心差异:缓存穿透是库里压根没数据,请求像透视眼一样直接穿过缓存打到库里;而缓存击穿是库里明明有数据,但缓存里的那个“超级热点”正好过期了。

1. 彻底理解:什么是缓存击穿

在业务中,总有一些“明星数据”,比如双11的爆款单品、热搜第一的娱乐新闻。它们就像战场上的核心碉堡,被成千上万个请求同时盯着。

想象一下:这个热点数据的缓存原本跑得好好的,突然过期时间到了,缓存失效。就在这短短的几毫秒内,还没等后端把新缓存补上,海量的请求已经像海啸一样涌了过来。大家发现缓存没了,于是全部转头冲向数据库。

结果显而易见:Redis原本能扛住10万+的并发,现在这股压力全压到了只能扛几千并发的数据库身上。数据库瞬间“瘫痪”,这就是缓存击穿。这里要稍微留意,击穿是个“点”的问题(某个热点Key),如果是一大批Key同时失效,那叫“雪崩”,咱们下篇再细聊。

2. 如何防御?两招给数据库穿上防弹衣

解决击穿的核心逻辑就两条路:要么不让这么多请求同时钻空子,要么干脆不让热点数据在关键时刻过期。

(1) 第一招:互斥锁(排队上车,拒绝拥挤)

这是最经典的方法。既然缓存没了,那我们就给“查库”这个动作加一把锁。

当大批请求发现缓存失效时,它们必须去争夺一把“互斥锁”(比如Redis的SETNX)。只有抢到锁的那个“幸运儿”才能获得查库并更新缓存的资格。至于没抢到锁的其他请求,要么稍微“睡个觉”重试,要么直接拿个临时的默认值(比如“加载中”)先应付一下。

这里有个老司机才知道的细节:用这招一定要给锁设个过期时间。万一那个抢到锁的线程中途宕机了没放锁,其他请求就会全部死等,导致整个系统停摆。这种方案虽然让请求稍微等了一会儿,但它能保证你拿到的数据永远是最新的。

(2) 第二招:逻辑过期(永不过期,后台刷新)

如果你的业务对性能要求极高,连那点加锁的等待时间都不能接受,那“逻辑过期”就是大厂更常用的进阶方案。

核心逻辑很有意思:我们在Redis里存数据时,不设真正的过期时间。那怎么知道数据旧了呢?我们在数据内部加一个字段,比如expire_at: 12:00。当请求发现当前时间已经是12:01时,它会先把旧数据返回给用户(保证不卡顿),同时后台偷偷启动一个异步线程去刷新缓存。

这种方案通过牺牲一点点“数据实时性”,换取了极致的响应速度。它非常适合像热门文章、首页推荐这种数据稍微旧几秒也没关系的场景,从根本上杜绝了因过期导致的瞬间冲击。

3. 深度复盘:我该选哪一个

选哪一方案,主要看你的业务更在乎什么。如果你的数据要求绝对准确(比如秒杀库存),那就用互斥锁,慢一点但准;如果你的业务追求极速响应(比如内容资讯),那就用逻辑过期,旧一点但稳。

另外很多同学会问:击穿和穿透会同时发生吗?答案是不会。因为击穿的前提是“库里有数据”,而穿透的前提是“库里没数据”,两者的药方也完全不同,千万别混用了。

4. 核心总结

今天我们搞定了单个热点Key引发的“击穿”危机,掌握了加锁和异步更新的妙招。

至此,Redis三大难题我们已经攻克了两个:

缓存穿透:无数据可查,入口拦截+布隆过滤器。缓存击穿:单点热点过期,互斥锁+逻辑过期。
来源:https://www.51cto.com/article/836217.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Redis缓存雪崩终极指南:6招避免系统全线崩溃
科技数码
Redis缓存雪崩终极指南:6招避免系统全线崩溃

抓住“避免缓存缺失、控制并发查库、保护数据库”这三个关键点,就能应对绝大多数高并发挑战。 上一篇推文《缓存击穿:热点Key突然“失踪”?这两招教你稳住阵脚!》结尾,我们预告了Redis缓存三大难题中

热心网友
02.13
缓存击穿应对:热点Key失效时如何稳住系统?
科技数码
缓存击穿应对:热点Key失效时如何稳住系统?

今天我们将学习单个热点 Key 引发的“击穿”危机,掌握了加锁和异步更新的妙招。 上一篇《Redis缓存三大难题之缓存穿透:原理+解决方案,一文吃透!》我们聊完了“无中生有”的缓存穿透,很多同学反馈

热心网友
02.11
Redis缓存穿透原理与解决方案详解,三大难题一次攻克
科技数码
Redis缓存穿透原理与解决方案详解,三大难题一次攻克

今天我们吃透了缓存穿透的原理、危害和解决方案,其实它和缓存击穿、缓存雪崩并称为“Redis缓存三大难题”——三者看似相似,实则核心差异很大,解决方案也各有侧重。 在Redis缓存的实际应用中,咱们常

热心网友
02.09
AMD堆叠L2缓存:X3D终极形态与性能跃迁解析
电脑教程
AMD堆叠L2缓存:X3D终极形态与性能跃迁解析

1月16日消息,在堆叠L3缓存的3D V-Cache技术助其统治游戏CPU市场后,AMD并未止步。近日,AMD公布了一篇名为《均衡延迟堆叠缓存》(Balanced Latency Stacked C

热心网友
01.16
分布式缓存架构设计挑战解析与分类实践
科技数码
分布式缓存架构设计挑战解析与分类实践

在高性能架构中,缓存是提升系统吞吐量、降低响应时延的利器。然而,分布式环境下的缓存应用并非简单的 “Key-Value” 存储,它涉及到复杂的稳定性挑战与一致性设计。 在高性能架构中,缓存是提升系统

热心网友
01.05

最新APP

恶魔秘境
恶魔秘境
角色扮演 03-29
猫和老鼠华为
猫和老鼠华为
休闲益智 03-29
暗黑之地
暗黑之地
角色扮演 03-28
你比我猜
你比我猜
休闲益智 03-26
锦绣商铺
锦绣商铺
模拟经营 03-26

热门推荐

vivo X300 Ultra 摄影师套装开箱:重塑复古影像,专业拍摄体验
网络安全
vivo X300 Ultra 摄影师套装开箱:重塑复古影像,专业拍摄体验

三月的丽江,春风载着光影的诗意,vivo于此启幕春季新品发布会,年度影像旗舰vivo X300 Ultra将如约登场。我们有幸提前执掌这款被赋予“专业V单”称号的新机,今日便与你一同,沉浸式解锁这台

热心网友
03.30
悟空浏览器悬浮搜索用法详解,轻松启用高效搜索窗
电脑教程
悟空浏览器悬浮搜索用法详解,轻松启用高效搜索窗

悟空浏览器支持五种调出搜索悬浮窗的方式:一、地址栏长按;二、左边缘手势滑动;三、启用chrome: flags中的“Enable search bubble UI”;四、侧边栏添

热心网友
03.30
13年前就拥抱增程动力的宝马,如何看待增程式车型?
科技数码
13年前就拥抱增程动力的宝马,如何看待增程式车型?

快科技3月30日消息,日前,宝马产品负责人贝恩德·克尔伯在接受BMW Blog采访时明确表示,公司对增程车型持观望态度,虽技术上完全可行,但现实需求尚未明确,暂未做出量产决策。这一表态与宝马研发负责

热心网友
03.30
腾讯AI全景亮相中国网络媒体论坛郑州举行
科技数码
腾讯AI全景亮相中国网络媒体论坛郑州举行

大象新闻·大象财富记者 李莉 张迪驰3月29日,以“发挥主流媒体引领力 激发多元主体创造力——共创繁荣网络内容生态”为主题的2026中国网络媒体论坛在河南郑州开幕。腾讯携AI全景亮相,展示“从效率伙

热心网友
03.30
铂智第二款纯电上市,广汽丰田新能源转型稳步推进
科技数码
铂智第二款纯电上市,广汽丰田新能源转型稳步推进

3月29日,广汽丰田首款大型纯电轿车铂智7正式上市。新车推出600km和700km两种续航版本共5款配置,限时补贴权益后售价区间为14 78万元至19 98万元。作为广汽丰田继铂智3X之后的第二款纯

热心网友
03.30