Maison > Article > base de données > Comment Redis résout-il le problème de la vente flash et de la survente ?
Tout d'abord, générez le décompte de l'inventaire
public function kucun() { //有十个库存 $count=10; //添加到redis list中 for($i=0;$i<$count;$i++){ Predis::getInstance()->lpush('kucun',111111111); } self::dd(Predis::getInstance()->lrange('kucun',0,-1)); }
Après cela, utilisez lpop ou rpop de redis pour couper la liste. Auparavant, llen ou incr était utilisé pour juger les données. . , il y aura un phénomène de survente, donc la logique de lpop est utilisée ici pour résoudre le problème de survente
public function ru() { //判断计数器 if (Predis::getInstance()->lpop('kucun')) { $user=User::where('user_id',1082)->find(); //存入会员id Predis::getInstance()->lpush('user',$user['user_id']); //计数器累计加1 // Predis::getInstance()->incr('number'); echo '加入秒杀成功';exit(); }else{ echo '活动截至'; exit(); } }
Test :
ab -r -n 1000 -c 1000 http://149.28.16.212/index/index/ru
Plus de connaissances liées à Redis. , veuillez visiter la colonne Tutoriel d'utilisation de Redis !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!