当前位置: 首页
科技数码
缓存击穿应对:热点Key失效时如何稳住系统?

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

热心网友 时间:2026-02-11
转载

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

今天我们来攻克由单个热点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。

同类文章
更多
小米回应新车未上市被曝起火实为SkyNomad遭AI污染

小米回应新车未上市被曝起火实为SkyNomad遭AI污染

小米新系列尚未正式发布,搜索“SkyNomad”即出现“起火”“事故”等联想词及疑似AI生成的“车祸”视频。小米官方紧急辟谣,已收集相关证据并与平台沟通,指出这是利用AI技术批量造谣的有组织的舆论攻击行为。

时间:2026-07-11 12:56
沃尔玛沃集鲜推出药食同源系列新品

沃尔玛沃集鲜推出药食同源系列新品

沃尔玛自有品牌沃集鲜推出“药食同源”系列,覆盖饮品、烘焙、零食等品类,分日常与衍生两大产品梯队,联合老字号拓展消费场景,同时加速全国门店升级,以商品力与门店网络推动全渠道增长。

时间:2026-07-11 12:55
聆思科技获近5亿元B轮融资

聆思科技获近5亿元B轮融资

聆思科技完成近5亿元B轮融资,由安徽与合肥国资领投。资金将用于新一代端侧大模型AI推理芯片研发,从感知模型升级至认知大模型。首颗Nebula系列预计2026年底推出。公司已推出23款芯片,累计出货超1 5亿片,广泛用于家居家电、教育办公等领域。

时间:2026-07-11 12:55
北通鲲鹏70异环联名手柄上市安魂曲薄荷双色699元

北通鲲鹏70异环联名手柄上市安魂曲薄荷双色699元

北通鲲鹏70《异环》联名款手柄上市,售价699元,提供安魂曲与薄荷双色。礼盒内含定制手柄及周边,前12000套赠游戏道具兑换卡。手柄搭载AI触觉反馈肩键、双切扳机、阻尼可调摇杆,支持星闪2000Hz回报率,兼容PC、NS、手机和车机。

时间:2026-07-11 12:54
全球电动汽车需求持续增长趋势研究机构报告

全球电动汽车需求持续增长趋势研究机构报告

6月全球电动汽车注册量连续第四个月增长,达200万辆,同比增7%。欧洲市场表现抢眼,注册量飙升31%,北美受税收政策影响下滑13%。德国车企面临挑战,保时捷上半年销量降16%,大众营业利润跌54%。

时间:2026-07-11 12:54
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜