库存扣减还有这么多方案? | 架构师之路

  1. 云栖社区>
  2. 阿里云MVP>
  3. 博客>
  4. 正文

库存扣减还有这么多方案? | 架构师之路

初商 2019-08-11 23:32:19 浏览373
展开阅读全文

昨天一篇《库存扣多了,到底怎么整》,核心观点是:

用“设置库存”替代“扣减库存”,以保证幂等性

使用CAS乐观锁,在“设置库存”时加上原始库存的比对,避免数据不一致

文章非常多朋友留言发表观点,“架构师之路”能引发不少同学思考,甚是欣慰。

原以为两个核心观点应该是没有疑义的,结果很多朋友说方案不好,今天交流下部分回复的方案,个人的一些看法。

留言一

是否能使用

update stock set num=num-$count where sid=$sid and stock>=$count;

的方式扣减库存?

回答:这个方案无法保证幂等性,有可能出现重复扣减。

留言二

把库存放到reids里,利用redis的事务性来扣减库存。

分析:

redis是如何实现事务操作的?

本质也是乐观锁。

在redis客户端执行:

$num = GET key

$num = $n

网友评论

登录后评论
0/500
评论
初商
+ 关注
所属云栖号: 阿里云MVP