消息队列redis

前端之家收集整理的这篇文章主要介绍了消息队列redis前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.消息队列流程

2.接收用户请求

connect('127.0.0.1',6379); //接收用户的id $redis_name = $_GET['uid']; //获取一下redis里面已有的数量 // $num = 10; //如果当天人数少于10人的时候,则加入这个队列 if($redis->Len($redis_name) < 10){   //如果当天的人数已经达到了10人,则返回秒杀已完成   $redis->rPush($redis_name,$uid.'%'.microtime()); echo $uid.'秒杀成功'; }else{ echo '秒杀失败'; } $redis->close();

3.执行定时任务插入数据库

connect('127.0.0.1',6379);$redis_name = 'miaosha';$db=DB::getIntance();//死循环while($i<=50){ $i +=1; //从队列最左侧取出一个值来, $user = $Redis->lPop($redis_name); //然后判断这个值是否存在 if(!$user || $user == 'nil'){ sleep(2); continue; } sleep(1); //空队休息时间}//切割指出时间,uid$user_arr = explode('%',$user);//保存数据库中$res = $db->insert('redis_queue',$insert_data);//数据库回滚机制释放redis(插入失败时候回滚机制)if(!$res){ $redis->rPush($redis_name,$user);}sleep(2);//释放一下redis$redis->close();

猜你在找的Redis相关文章