redis

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

秒杀案例: <?php $useTotal = self::getUseTotal($id); //优先从reids取值,没有取数据库 $key = self::USETOTAL_CACHE . $goods_id; $redis = self::getRedis(); $redis->watch($key); if ($useTotal + $num > …

0 阅读

秒杀案例: <?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的时候变化),标志位变化则支付失败。

正在加载评论…