首页 游戏 软件 资讯 排行榜 专题
首页
数据库
Redis如何在高并发环境避免缓存击穿引起的数据库崩溃

Redis如何在高并发环境避免缓存击穿引起的数据库崩溃

热心网友
39
转载
2026-04-26

Redis如何在高并发环境避免缓存击穿引起的数据库崩溃

Redis如何在高并发环境避免缓存击穿引起的数据库崩溃

先明确一个核心概念:缓存击穿。它特指某个热点 key 在 Redis 中过期的瞬间,大量并发请求同时穿透缓存,直接冲击数据库。这既不同于大面积的缓存雪崩,也区别于查询不存在数据的缓存穿透,而是单个高热 key 在“过期真空期”引发的瞬时洪峰,破坏力集中,极易成为系统瓶颈。

缓存击穿是什么,为什么它会压垮数据库

想象一下这样的场景:一个秒杀商品的详情页、热搜榜单的第一名,或者一个活动倒计时的配置。这些 key 承载着巨大的访问量,一旦其生存时间设置不当或未能及时续期,过期的那一刻,几十甚至上百个请求便会如潮水般涌向数据库。

关键在于,当 GET 命令返回 null 后,多个线程或进程几乎会同时执行 SELECT ... FROM db 查询,紧接着再执行 SET 写回缓存。这一连串操作,瞬间就能打满数据库连接池,导致慢查询堆积,最终拖垮整个服务。可以说,缓存击穿是典型的高并发场景下的“单点爆破”问题。

用互斥锁(Mutex Lock)控制重建缓存的唯一性

解决思路很直观:只允许一个请求去数据库查询并写回缓存,其他请求则等待这个结果,而不是各自为战。Redis 本身虽然没有阻塞式锁,但我们可以巧妙地利用 SET 命令的 NXEX 参数来实现原子性的加锁操作。

这里有个常见的误区:先 GET 判断锁是否存在,再 SET 加锁。这中间存在竞态条件,并非原子操作。正确做法是一步到位:

SET lock:goods:1001 "1" NX EX 30

如果返回 OK,恭喜,抢锁成功;如果返回 (nil),说明锁已被占用,当前请求就应该进入轮询,不断尝试 GET goods:1001 直到命中缓存或等待超时。

有几个细节必须注意:

  • 锁的过期时间要足够EX 30 设置的30秒必须明显长于“数据库查询+写缓存”的总耗时,否则锁提前释放,会导致重复重建,前功尽弃。
  • 安全释放锁:业务代码中一定要记得 DEL lock:goods:1001,但不能简单地在 finally 块里删除。必须确保删除的是自己加的锁,防止误删他人持有的锁。推荐使用 Lua 脚本来保证“判断+删除”的原子性。
  • 设置合理的等待策略:轮询间隔建议在 10–50 毫秒,总等待时间上限可设为 200 毫秒。一旦超时,应降级为直接查询数据库,避免所有请求无限等待,引发雪球效应。

用逻辑过期(Logical Expiration)替代物理 TTL

物理过期依赖 EXPIRE 命令,失效点不可控。而逻辑过期则将过期时间隐藏在 value 内部,例如存储一个 JSON 结构:{"data":"xxx","expireAt":1717023456}。每次读取时,先检查 expireAt 字段是否已过期,再决定是否触发异步刷新。

这样做的好处显而易见:key 在 Redis 中永不过期,从根本上规避了击穿风险。刷新动作由第一个发现逻辑过期的请求触发,并且是异步执行的,不会阻塞后续请求——它们仍然可以返回旧的、可用的数据。

具体实操时,要把握这几个要点:

  • 写入方式:使用 SET goods:1001 "{...}"(不带 EX 参数),过期逻辑完全由程序控制。
  • 刷新必须异步:如果将刷新操作放在同步流程中,就又变回了阻塞模式。应该使用线程池或消息队列进行解耦。
  • 处理刷新失败:如果连续几次异步刷新数据库都超时或失败,应适当延长逻辑过期时间,避免短时间内反复触发无效的刷新请求。
  • 注意时钟一致性:所有服务节点的系统时间偏差不能太大,否则基于 expireAt 的时间判断就会失准。

兜底方案:本地缓存 + 熔断限流

要知道,Redis 本身也是一个远程服务。万一它出现抖动或网络分区,仅仅依赖分布式锁可能也无济于事。因此,必须在应用层再加一道保险。

可以在 JVM 内存中使用如 CaffeineGua va Cache 这样的本地缓存,来存储热点 key 的“是否正在重建”状态。例如:cache.put("rebuilding:goods:1001", true, 10, TimeUnit.SECONDS)。这样,即使 Redis 暂时不可用,应用也能快速判断并拒绝重复的重建请求。

同时,在数据访问层对目标数据库表施加熔断限流措施,例如集成 HystrixSentinel。当数据库查询在短时间内失败率超过阈值(比如5秒内失败率超50%),熔断器会自动开启,后续请求直接返回降级数据(如默认值或缓存旧值),为数据库争取宝贵的恢复时间。

最后,还有一个容易被忽略但至关重要的点:缓存重建失败的日志必须单独监控和告警。不能让它混在普通的错误日志里。因为“查不到数据→写入空值缓存→下次直接返回空”这条链路,表面上风平浪静,实际上业务语义已经丢失,需要立即介入处理。

来源:https://www.php.cn/faq/2310015.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

宇树科技IPO前夕发布人形机器人战略布局
业界动态
宇树科技IPO前夕发布人形机器人战略布局

宇树科技冲刺资本市场的步伐,正变得愈发清晰。 5月25日,上交所发布公告,定于6月1日召开上市审核委员会会议,审议宇树科技股份有限公司的首发上市申请。在叩响资本市场大门的同时,宇树在线下渠道的布局上也按下了加速键。 就在5月底,宇树具身智能体验馆的亚洲首店,即将在上海静安久光百货正式亮相。而此前不到

热心网友
05.26
中国5G基站超500万用户数突破12亿大关
业界动态
中国5G基站超500万用户数突破12亿大关

截至4月末,全国5G基站总数突破500万,占移动基站近四成。同期5G移动电话用户达12 62亿户,占比近七成,用户规模持续快速扩张,增长势头在全球通信史上亦属罕见。

热心网友
05.26
异人之下起身压制技巧详解与实战应用指南
游戏资讯
异人之下起身压制技巧详解与实战应用指南

在《异人之下》的激烈对决中,胜负往往取决于瞬息之间的决策与操作。“起身压制”作为一项高阶技巧,正是高手博弈中实现瞬间翻盘、奠定胜局的核心战术。 精准把握起身时机 成功实施起身压制的首要关键,在于对时机的极致把控。这个黄金窗口通常出现在对手攻击动作结束、产生收招硬直的瞬间。玩家需要像一名敏锐的观察者,

热心网友
05.26
郭嘉获取与养成全攻略 平民玩家通用技巧指南
游戏资讯
郭嘉获取与养成全攻略 平民玩家通用技巧指南

郭嘉可通过限时活动、招募系统、商店兑换与副本掉落等途径获取。平民玩家可积攒神将令参与招募,或在商店兑换碎片合成;资源充足的玩家可通过限时活动快速获取高星郭嘉。其定位为后排法术输出兼控制武将,与曹操等魏国武将搭配可形成强力战术体系,适用于多种玩法场景。

热心网友
05.26
欧逸天然猫粮官网:守护猫咪健康的自然营养选择
web3.0
欧逸天然猫粮官网:守护猫咪健康的自然营养选择

欧逸天然猫粮官网:构建宠物健康喂养的信任基石 在宠物健康意识日益提升的今天,为爱宠选择主粮,早已超越了简单的消费行为,成为一份沉甸甸的责任。安全与营养,是每一位负责任的猫咪家长的首要考量。欧逸天然猫粮的官方网站,正是这一理念的数字化承载者。它不仅仅是一个产品展示的橱窗,更是一个传递“以自然为本,以健

热心网友
05.26

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

餐饮业年终总结:AI技术如何优化管理与营销策略
AI教程
餐饮业年终总结:AI技术如何优化管理与营销策略

餐饮行业面临同质化竞争与成本攀升挑战。通过系统性收集反馈优化服务流程,策划线上促销并调整菜单结构,同时加强团队建设。年度顾客满意度提升20%,线上销售额增长30%,人均消费额提高15%。未来将探索AI技术在经营决策、精准营销等领域的应用,以数据驱动业务持续增长。

热心网友
05.26
思特威与紫光展锐合作布局MicroLED高速光互连技术
科技数码
思特威与紫光展锐合作布局MicroLED高速光互连技术

思特威与紫光展锐达成战略合作,共同研发MicroLED高速光互连方案。该方案旨在解决AI算力集群短距数据传输的瓶颈,通过并行光通道显著降低功耗,提升集成度。双方将结合光电技术与高速接口优势,推动国产方案在数据中心、智能驾驶等场景的应用,助力产业生态构建与技术自主。

热心网友
05.26
三角洲行动M7战斗步枪改装指南 配件选择与实战配置方案
游戏资讯
三角洲行动M7战斗步枪改装指南 配件选择与实战配置方案

在《三角洲行动》中,M7战斗步枪凭借其出色的基础性能,成为许多特战干员的可靠选择。然而,要充分发挥其战场潜力,一套精心调校的改装方案至关重要。本文将深入解析M7的核心改装思路,助你打造一把适应不同战况的精准利器。 枪管:奠定射程与精度的核心 优先选择长枪管改装。其核心价值在于显著提升子弹初速与有效射

热心网友
05.26
面壁智能开源BitCPM-CANN:国产算力实现1.58比特训练,推理显存节省六分之五
AI资讯
面壁智能开源BitCPM-CANN:国产算力实现1.58比特训练,推理显存节省六分之五

2026年,AI专用HBM内存价格暴涨超过165%,显存 HBM正成为模型扩展最昂贵、最稀缺的资源之一,模型公司的核心推理成本居高不下。 与此同时,高端AI芯片对华出口管制政策反复,让国产算力生态在面临高昂“过路费”与供应链安全风险的双重夹击下艰难求生。 这两件事叠加,共同指向一个核心问题:在硬件条

热心网友
05.26
比安量化交易设置教程:从入门到精通全指南
web3.0
比安量化交易设置教程:从入门到精通全指南

量化交易通过预设规则自动执行买卖,能有效克服情绪干扰。其核心在于策略设计、参数优化与风险控制。策略需明确入场、出场及资金管理规则,并通过历史数据回测验证。参数优化需平衡过拟合与泛化能力,风险控制则依赖仓位管理和止损止盈设置。实盘前需进行模拟测试,并持续监控与调整以适应市场变化。

热心网友
05.26