电商秒杀这种高并发场景,要实现库存扣减,如果做到不会把库存扣成负数呢?
我想问下,想电商秒杀这种高并发场景,要实现库存扣减,如果做到不会把库存扣成负数呢?因为扣减库存需要先 select
在 update
,而 select
得到了还有一个库存,A去 update
-1了,但是该时刻,B select
得到了还有一个库存,B也去 update
-1了。这样库存就变成了负数了。这个问题好像用事务无法处理,需要用锁吗?用哪种锁比较合适呢?尽量照顾性能
我想到下面几种方法:
- 使用
update
行锁? case when
- 把库存字段设置为
unsigned int
回答:
Github 上面有个仓库专门收集了秒杀的解决方案。
- qiurunze123/miaosha: ⭐⭐⭐⭐秒杀系统设计与实现.互联网工程师进阶与分析??
回答:
你引入redis就会很好解决
以上是 电商秒杀这种高并发场景,要实现库存扣减,如果做到不会把库存扣成负数呢? 的全部内容, 来源链接: utcz.com/p/938093.html