昨天一篇《库存扣多了,到底怎么整》,核心观点是:
用“设置库存”替代“扣减库存”,以保证幂等性
使用CAS乐观锁,在“设置库存”时加上原始库存的比对,避免数据不一致
文章非常多朋友留言发表观点,“架构师之路”能引发不少同学思考,甚是欣慰。
原以为两个核心观点应该是没有疑义的,结果很多朋友说方案不好,今天交流下部分回复的方案,个人的一些看法。
留言一
是否能使用
update stock set num=num-$count where sid=$sid and stock>=$count;
的方式扣减库存?
回答:这个方案无法保证幂等性,有可能出现重复扣减。
留言二
把库存放到reids里,利用redis的事务性来扣减库存。
分析:
redis是如何实现事务操作的?
本质也是乐观锁。
在redis客户端执行:
$num = GET key
$num = $n
继续阅读与本文标签相同的文章
上一篇 :
计数系统架构实践一次搞定 | 架构师之路
-
浅谈CAS在分布式ID生成方案上的应用 | 架构师之路
2026-05-20栏目: 教程
-
mysql并行复制降低主从同步延时的思路与启示
2026-05-20栏目: 教程
-
从IDC到云端架构迁移之路(GITC2016)
2026-05-20栏目: 教程
-
单KEY业务,数据库水平切分架构实践 | 架构师之路
2026-05-20栏目: 教程
-
库存扣减还有这么多方案? | 架构师之路
2026-05-20栏目: 教程
