목록 레디 스 데이터 유형을 사용하는 간단한 메시지 대기열로 사용될 수 있으며, 목록은 기본 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되는 간단한 메시지 큐를 달성하는 것을 알 수있다.