使用redis防止高并发场景下的超卖

给商品ID为1的商品初始化10个库存

$redis = new \redis();

$redis->connect("127.0.0.1", 6379);

$redis->del("goods_id:1");

for ($i=0; $i < 10; $i++) { 
    $redis->lpush("goods_id:1", 1);
}

下单库存判断


if (!$redis->lpop("goods_id:1")) {
    throw new \Exception("库存不足");
}

// 执行业务逻辑

// 如果业务逻辑抛出异常,将库存还原
$redis->lpush("goods_id:1", 1);

results matching ""

    No results matching ""