1.
生产者:
<?php
//publish.php
$redis = new Redis();
$redis->pconnect('10.10.10.252',6379);
$redis->auth('rds!2016!FD');
for($i=1;$i<=10;$i++){
//$redis->publish('chan-1', 'hello, world!'.$i); // send message to channel 1.
//$redis->publish('chan-2', 'hello, world2!'.$i); // send message to channel 2.
$key = "key1";
$msg = "hello world - ".$i;
$redis->lpush($key, $msg);
}
print "\n";
$redis->close();
//redisDao.lpush(key, msg);
?>
消费者:(多个,争抢模式)
<?php
//publish.php
$redis = new Redis();
$redis->pconnect('10.10.10.252',6379);
$redis->auth('rds!2016!FD');
$key = "key1";
while (true) {
//echo 1;
// block invoke
$msgs = $redis->brpop($key,2);
if ( $msgs == null) continue;
var_dump($msgs);
}
?>
2.考虑到失败情况: 消费者(保存到list key2,如果其他的操作成功,从key2中删除 添加的数据。)
<?php
//publish.php
$redis = new Redis();
$redis->pconnect('10.10.10.252',6379);
$redis->auth('rds!2016!FD');
/*
$key = "key1";
while (true) {
//echo 1;
// block invoke
$msgs = $redis->brpop($key,2);
if ( $msgs == null) continue;
var_dump($msgs);
}
*/
while(true){
$data = $redis->brpoplpush('key1','key2', 30);
var_dump($data); //data1
$dd = $redis->lrange('key2',0,-1);
var_dump($dd);
//some process
$redis->lrem('key2',$data);
}
?>