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

  1. 将请求存入redis
  2. 为了模拟多个用户的请求,使用一个for循环替代
  3. //redis数据入队操作
  4. $redis = new Redis();
  5. $redis->connect('127.0.0.1',6379);
  6. for($i=0;$i<50;$i++){
  7. try{
  8. $redis->LPUSH('click',rand(1000,5000));
  9. }catch(Exception $e){
  10. echo $e->getMessage();
  11. }
  12. }
  13. 在后台进行数据处理
  14. 守护进程
  15. //redis数据出队操作,从redis中将请求取出
  16. $redis = new Redis();
  17. $redis->pconnect('127.0.0.1',6379);
  18. while(true){
  19. try{
  20. $value = $redis->LPOP('click');
  21. if(!$value){
  22. break;
  23. }
  24. //var_dump($value)."\n";
  25. /*
  26. * 利用$value进行逻辑和数据处理
  27. */
  28. }catch(Exception $e){
  29. echo $e->getMessage();
  30. }
点赞

发表评论