消息队列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();

相关文章

文章浏览阅读1.3k次。在 Redis 中,键(Keys)是非常重要的概...
文章浏览阅读3.3k次,点赞44次,收藏88次。本篇是对单节点的...
文章浏览阅读8.4k次,点赞8次,收藏18次。Spring Boot 整合R...
文章浏览阅读978次,点赞25次,收藏21次。在Centos上安装Red...
文章浏览阅读1.2k次,点赞21次,收藏22次。Docker-Compose部...
文章浏览阅读2.2k次,点赞59次,收藏38次。合理的JedisPool资...