商品下单减库存,网上示例几乎都是单品扣减库存。但实际情况往往是多个单品一次下单,在并发情况下怎么保证不超卖呢?先看下运行结果
购物车并发下单运行结果
商品 shopCode_01 初始化 数量 1000
商品 shopCode_02 初始化 数量 500
商品 shopCode_03 初始化 数量 100
购物车并发购买 shopCode_01 150个,shopCode_02 100个,shopCode_03 50 个
具体方案:
1. 先将库存数量缓存到 redis 中
2. 使用 redis 的原子 *** 作 increment 方法,保证线程安全
3. 判断结果是否大于等于0 防止超卖,如果满足将商品信息保存到 list 集合中,否则 redis 回滚 库存
4. 判断 list 集合数量与购物车单品数量是否相同ÿ
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)