PHP 操作 Redis 实现秒杀超卖

2020-07-11  本文已影响0人  王宣成
<?php
    $redis = new Redis();
    $redis->connect("127.0.0.1", 6379);

    $redis->watch('sales'); //乐观锁 监视作用 set()  初始值0
    $sales = $redis->get('sales');

    $n = 100;
    if ($sales >= $n) {
        exit('秒杀结束');
    }

    //开启事务
    $redis->multi();

    //每次抢购+1
    $redis->incr('sales');  

    //执行事务
    $res = $redis->exec(); 
    if (!$res) {
        exit('抢购失败');
    }

    //秒杀活动结束后更新数据库库存
 
上一篇 下一篇

猜你喜欢

热点阅读