| 失效链接处理 |
|
设计一个秒杀系统,库存扣减用Redis还是数据库?Redis挂了怎么办?
相关截图:
![]() 主要内容: 先说结论
访问量不大时,直接使用数据库的条件更新,简单而且可靠。
真正的高并发秒杀,通常使用 Redis 原子预扣库存,再通过消息队列异步创建订单、更新数据库。
数据库仍然是最终账本,Redis 里的库存更像一张放在入口处的“可售额度表”。
Redis 故障时,不要让全部请求直接穿透到数据库。宁可短暂显示“活动繁忙”,也不要把数据库一起拖垮。
为什么不能只看“扣库存”
库存扣减至少要解决三个问题:
不能超卖:库存只有 100 件,就不能成功卖出 101 件。
扛住流量:十万个请求不能都落到数据库。
数据能对上:用户支付、取消订单、消息重复投递后,库存仍然要正确。
所以,秒杀链路通常会先做登录校验、活动校验、限流和防重复购买,最后才轮到真正的库存处理。
|


苏公网安备 32061202001004号
