Redis Pub发布/sub订阅实现机制

     2014啦,时间如流水般哗啦啦的溜走啦,试问时间都去哪儿了?

     很久没更新博客,抽空把遇到的问题和思路的整理写点。

     reids的 发布订阅是为用户订阅频道,广播发送的一个消息推送机制,功能挺美的,可是我目前遇到的是如果推送消息量太大会出现性能问题,有待后续研究了,当然有哪位好心朋友已经有好的解决方案了,可以分享下。哈哈

publish:讲消息发送到指定的频道

shell:

#对没有订阅者的频道发送信息       
          redis> publish msg  “推送公告”
                (interger) 0 

  #向一个订阅者的频道发送信息
         redis> publish msg_1 "亲,该收衣服了"
               (interger) 1

 #向多个订阅者的频道发送信息              
         redis> publish msg_2 "卧槽,你们都在偷窥我啊"
               (interger) 10

PHP-API:

$redis = new Redis(); 
$redis->connect('127.0.0.1',6379); 
$redis->publish('msg', '节操一屏幕');

subscribe:订阅给定的一个或多个频道的消息

shell:

# 订阅 msg 和 msg_1两个频道

# 1 - 6 行是执行 subscribe 之后的反馈信息
# 第 7 - 9 行才是接收到的第一条信息
# 第 10 - 12 行是第二条

redis> subscribe msg msg_1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"       # 返回值的类型:显示订阅成功
2) "msg"             # 订阅的频道名字
3) (integer) 100       # 目前已订阅的频道数量

1) "subscribe"
2) "msg_1"
3) (integer) 1

1) "message"         # 返回值的类型:信息
2) "msg"             # 来源(从那个频道发送过来)
3) "推送公告"      # 信息内容

1) "message"
2) "msg_1"
3) "亲,该收衣服了"

PHP-API:

$redis = new Redis(); 
$redis->connect('127.0.0.1',6379); 
$redis->subscribe(array('msg'), 'callback'); 
function callback($instance, $channelName, $message) { 
 echo $channelName, "==>", $message,PHP_EOL; 
}

    后续实践过程待续更新......

    注:订阅subscribe是需要实施监控的,如果是测试可以常开一个终端窗口即可或通过nodejs做个监控,这样才能实施收到订阅信息。

   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值