$redis=new \Redis();
$redis->connect('localhost',6379);
$redis->auth('123456');
$goods_id=$request->input("goods_id");//1
//商品库存
$goods_store=DB::select("select store from qlc_goods where id=$goods_id");
$store=$goods_store[0]->store;//1
/*
* $count商品队列长度每次-1,若队列长度为0,返回false
* $res 刚开始队列长度为0,后来长度为库存量
* */
$res=$redis->llen('store');
$count=$store-$res;
for($i=0;$i<$count;$i++){
$redis->lpush('store',1);
}
$redis->llen('store');
// 出队列
$count=$redis->lpop('store');
if(!$count){
$data['code']=0;
$data['mess']="失败";
return json_encode($data);
}else{
// 生成订单
//库存减少
$bool= DB::update("UPDATE qlc_goods set store=store-1 WHERE id=$goods_id");
if($bool){
$data['code']=1;
$data['mess']="抢购成功";
}else{
$data['code']=0;
$data['mess']="失败";
}
return json_encode($data);
}
php redis抢购功能
猜你喜欢
转载自blog.csdn.net/weixin_43310339/article/details/84280861
今日推荐
周排行