PHP + 간단한 메시지 큐 레디 스

목록 레디 스 데이터 유형을 사용하는 간단한 메시지 대기열로 사용될 수 있으며, 목록은 기본 FIFO 큐 기능을 달성하기 때문에, 이유는 간단한 큐이지만, ​​이러한 지연 큐 메시지 우선 순위 등의 기능은 물론, 지원되지 지연 큐는 또한 순서화 된 세트 레디 스를 달성하는 데 사용할 수 있지만, 자세한 내용은 여기를 도입 할 수 있습니다, 단지 목록은 가장 기본적인 FIFO 큐 기능을 달성 이용 PHP에 대해 알려주십시오.

전제 조건

PHP가 그러한 더 phpredis을 사용하는 것과, 상기 확장 동작 모드를 사용하는 것이 권장되며, 기능 사용되는 레디 스, predis 패키지를 사용하여 동작을 설치하도록 확장 될 수 없다.

생산자

생산자는 시험 50 개 데이터를 추가 할 데이터의 목록에 추가됩니다.
producer.php

<?php
header("Content-type:text/html;charset=utf-8");
$redis = new \Redis();
$res = $redis->connect('127.0.0.1', 6379 );
if($redis){
    //redis key
    $queue_name="test_queue";
    //插入测试数据50条
    for($i=1;$i<=50;$i++){
       $redis->lPush($queue_name,$i);
       echo 'add data:'.$i.''.PHP_EOL;
    }
}else{
    echo "connect Redis server failed";
}

소비자

소비자는 시간 순서대로 목록에서 데이터를 받아야한다.
consumer.php

<?php
header("Content-type:text/html;charset=utf-8");
$redis = new \Redis();
$res=$redis->pconnect('127.0.0.1',6379);
if($res){
    $queue_name="test_queue";
    while(true){
        $data = $redis->rpop($queue_name);
        if($data){
            echo 'get data:'.$data.''.PHP_EOL;
        }else{
            sleep(1);
        }
    } 
}else{
    echo "connect Redis server failed";
}

테스트

아래 첫 번째 구현 producer.php :

consumer.php, 다음과 같이 수행 :

얻은 데이터는 순차적으로 FIFO되는 간단한 메시지 큐를 달성하는 것을 알 수있다.

추천

출처www.cnblogs.com/yqzc/p/12539084.html