常见库存超卖解决方案

常见库存超卖解决方案

1.数据库乐观锁

判断库存数量 stock 大于扣减数量 pendingCounts,判断正确才会更新 SQL。
伪代码如下:

UPDATE
	product_stock
SET
	stock = stock - #{pendingCounts} 
WHERE 
	id = #{skuId} and stock >= #{pendingCounts}

应用中调用该方法后,判断数据修改行数是否大于0,如果条件判断不成功即修改失败,直接抛出异常即可。

2.Redis 缓存余量扣减

将商品 SKU 库存放到缓存,存储一个字符串或 Hash 类型。Key 是商品 SKU ID,Value 是商品 SKU 对应的库存数量,利用 Redis 的 incrby 特性来扣减库存,可以解决超扣和性能问题。
扣减库存成功后,继续执行数据库的扣减以及下订单等一系列流程。

相关推荐

  1. 常见库存解决方案

    2024-06-12 22:32:04       35 阅读
  2. selenium常见难点解决方案

    2024-06-12 22:32:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 22:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 22:32:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 22:32:04       82 阅读
  4. Python语言-面向对象

    2024-06-12 22:32:04       91 阅读

热门阅读

  1. AI与环保:共同塑造我们未来的世界

    2024-06-12 22:32:04       24 阅读
  2. C++共享指针shared_ptr的理解分享

    2024-06-12 22:32:04       29 阅读
  3. 【5】JDK、JRE和JVM的区别与联系

    2024-06-12 22:32:04       25 阅读
  4. 《在人间》唯有自救,方能得救

    2024-06-12 22:32:04       26 阅读
  5. 新型数据库技术一览

    2024-06-12 22:32:04       24 阅读
  6. Matlab 2024a如何切换中英文界面

    2024-06-12 22:32:04       27 阅读