×

未分类

🔥 电商库存扣减防超卖:分布式锁的三种实现(附Python源码)

万邦科技Lex 万邦科技Lex 发表于2026-05-31 浏览18 评论0
电商库存扣减是高并发场景下的经典难题。超卖的本质是:多个并发请求同时读到库存>0,然后同时扣减,导致实际扣减数超过库存总量。下面我将从最基础的方案讲起,逐步深入到生产级方案。

一、 超卖问题的根源

# 错误示范:经典的超卖代码
def deduct_stock(product_id, quantity):
    stock = db.query("SELECT stock FROM products WHERE id = ?", product_id)
    if stock >= quantity:
        db.execute("UPDATE products SET stock = stock - ? WHERE id = ?", quantity, product_id)
        return True
    return False