Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

        

联系锋哥QQ:3320160706

AI编程,程序员挑战年入30~100万高级指南 - 职业规划

Java、Python项目定制找Java1234_小锋老师,专业又靠谱 QQ:3320160706

Java、Python毕设辅导找Java1234_小锋老师,专业又靠谱 QQ:3320160706
当前位置: 主页 > Java文档 > Java基础相关 >

设计一个秒杀系统,库存扣减用Redis还是数据库?Redis挂了怎么办?


时间:2026-08-21 09:03来源:http://www.java1234.com 作者:小锋  侵权举报
设计一个秒杀系统,库存扣减用Redis还是数据库?Redis挂了怎么办?
失效链接处理
设计一个秒杀系统,库存扣减用Redis还是数据库?Redis挂了怎么办?

 
 
相关截图:
 


主要内容:


先说结论
访问量不大时,直接使用数据库的条件更新,简单而且可靠。
 
真正的高并发秒杀,通常使用 Redis 原子预扣库存,再通过消息队列异步创建订单、更新数据库。
 
数据库仍然是最终账本,Redis 里的库存更像一张放在入口处的“可售额度表”。
 
Redis 故障时,不要让全部请求直接穿透到数据库。宁可短暂显示“活动繁忙”,也不要把数据库一起拖垮。
 

为什么不能只看“扣库存”
库存扣减至少要解决三个问题:
 
不能超卖:库存只有 100 件,就不能成功卖出 101 件。
 
扛住流量:十万个请求不能都落到数据库。
 
数据能对上:用户支付、取消订单、消息重复投递后,库存仍然要正确。
 
所以,秒杀链路通常会先做登录校验、活动校验、限流和防重复购买,最后才轮到真正的库存处理。

 


 
------分隔线----------------------------


锋哥推荐