多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
思路:利用lpop移除并返回移除的值,失败返回false;当redis缓存中的商品数量不足则跳过减库存的步骤 ~~~ <?php require_once './Db.php'; //记录哈希值守护进程 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $res=$redis->lpop('goods_store');//移除并返回列表 if($res){ $pdo=Db::instance('127.0.0.1', 'root', 'root', 'test', 'utf8'); $id=mt_rand(20,30); //$where['id'] =['>',1]; $where['id'] =$id; $res=$pdo->table('good')->where($where)->setDec('goods_store',1); var_dump($res); }else{ echo '秒杀失败'; } 入队页面(有多少商品入多少次队): <?php $redis=new Redis(); $redis->connect('127.0.0.1',6379); $store=10; for($i=0;$i<$store;$i++){ $redis->lpush('goods_store',1); } var_dump($redis->lRange('goods_store',0,-1)); ~~~