目前看到最可靠的redis抢购程序。首先用Redis的队列模式进行抢购,当抢到的用户保存在另外一个队列当中。然后用户进入
<?php $redis = new Redis(array( 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => '6379' )); $redis->auth('123456'); //用户ID $user_id = $_SESSION['user_id']; $check = $redis->lpop('goods:1');//list类型 左边弹出 if(!$check){ exit('抢光了'); } $result = $redis->lpush('order:1',$user_id); //list类型左边赋值 if($result){ echo '抢购成功'; } ?>
判断是否抢到商品生成订单
<?php $redis = new Redis(array( 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => '6379' )); $redis->auth('123456'); //用户ID $user_id = $_SESSION['user_id']; $redis->lrem('order:1',$_SESSION['user_id'],1);//删除用户防止多次生成订单 //以下就是订单处理了......
文章提供仅提供参考!