Redis案例—购物车,商品秒杀

作者: 分类: redis 时间: 2016-11-08 评论: 暂无评论

秒杀案例:

<?php  
    $useTotal = self::getUseTotal($id);  //优先从reids取值,没有取数据库
    $key   = self::USETOTAL_CACHE . $goods_id;
    $redis = self::getRedis();
    $redis->watch($key);
    if ($useTotal + $num > $info['total']) {
        echo ('剩余夺宝码不足,购买失败');
    }
    $redis->multi();
    $redis->incrby($key, $num);
    $res = $redis->exec();
    if ($res) {
        //扣减商品 数量,保存到数据库
    }

根据这个原理,我们可以watch 来写商品的购物车,支付订单之前watch 商品的标志位(商品数量等于0的时候变化),标志位变化则支付失败。