PHP中利用redis实现消息队列处理高并发请求

将请求存入redis

为了模拟多个用户的请求,使用一个for循环替代

<?php
//redis数据入队操作 $redis = new Redis(); $redis->connect('127.0.0.1',6379); for($i=0;$i<50;$i++){ try{ $redis->LPUSH('click',rand(1000,5000)); }catch(Exception $e){ echo $e->getMessage(); } }

  

 


在后台进行数据处理

守护进程

 

<?php
//redis数据出队操作,从redis中将请求取出
$redis = new Redis();
$redis->pconnect('127.0.0.1',6379);
while(true){
try{
$value = $redis->RPOP('click');
if(!$value){
break;
}
var_dump($value)."\n";
/*
* 利用$value进行逻辑和数据处理
*/
}catch(Exception $e){
echo $e->getMessage();
}
}

  

posted @ 2017-11-07 16:45  php小小菜鸟  阅读(23448)  评论(2编辑  收藏  举报