微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis乐观锁秒杀,php秒杀,php redis秒杀

redis乐观锁秒杀,PHP秒杀,PHP redis秒杀,PHP redis 乐观锁秒杀


保证秒杀并发场景下库存不为负代码案例:

$key = '设置秒杀的KEY值';
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$redis->watch($key);
$sales = $redis->get($key);
//库存为定值,购买后不应减。而是加销量,假设是5
$stores = 5;
if ($sales >= $stores) {

    //这里是已售罄的业务可根据自己的业务场景构建业务
    exit("已售罄");
    
}else {

    //开启事务
    $redis->multi();
    $redis->incrby($key, 1);
    $result = $redis->exec();
    if ($result) {

        //这里是抢购成功的业务
        //例如:
        $conn = new PDO('MysqL:host=localhost;dbname=dkysh', 'root', 'root');
        //执行数据库的销量增加操作,执行订单创建等操作
        $conn->query("update xs_ms set stock = stock-1 where id = 1");
        
    } else {
    
        //这里是下单失败的业务
        $redis->incrby($key, -1);
        exit("重新下单");
    }
}


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐