Redis发布订阅机制在PHP中的运用

 先启动订阅者sub.php,使其处于阻塞运行等待的状态

然后执行发布者pub.php,向订阅了该频道的订阅者推送消息

#subscribe客服端 sub.php
$redis = new \Redis();
$res = $redis->pconnect('192.168.6.33', 6379);
$key = 'first';
#这里的subscribe是一个独占链接的,你在终端执行名“subscribe first” 后,屏幕将如同开启redis服务的终端一样,处于一直在线等一样。因此此处可以看出订阅者(客服端)的程序是以阻塞的方式等待,发布者的消息。
$redis->subscribe(array($key),'callback');
function callback($redis, $channel, $msg){
    var_dump($redis);
    echo $channel;
    echo $msg;
    return true;
}
#public客服端 pub.php
#无需独占链接,不是堵塞的
$redis = new \Redis();
$res = $redis->connect('192.168.6.33', 6379, 1 );
$key = 'first';//Channel 订阅这频道的订阅者,都能收收到消息
$value = 'hello world!';
$res = $redis->publish($key,$value);

执行后结果如下:

启动订阅者程sub.php使其处于等待状态:

执行发布者程序pub.php进行消息推送:

订阅者已接收到消息:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值