Redis订阅发布模式
理论迟点再补,先上代码。
直接上代码:
demoPub.php(发布者代码)
<?php
$redis = new Redis();
$redis->connect('localhost',6379);
$redis->publish('mcs','麒麟之才');
demoSub.php(订阅者代码)
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);//设置不超时,运行时设置redis配置,只有当前运行脚本生效。
$res =$redis->subscribe(array('mcs'),'callback');
function callback($instance,$channelName,$message){
var_dump(func_num_args());
var_dump(func_get_args());
var_dump($instance,$channelName,$message);
echo $channelName,'==>',$message,PHP_EOL;
}
在cli运行订阅者代码,然后另开一个终端运行发布者代码,观察效果。
注意:redis在发布订阅模式中,其他redis命令会执行失败。
备注:本文就是为了给自己做下记录,如有不恰当之处,请各路大牛指出,好让后辈们学习。