首页 > 其他 > 详细

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

时间:2014-03-13 23:24:09      阅读:755      评论:0      收藏:0      [点我收藏+]

     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做个监控,这样才能实施收到订阅信息。

   

Redis Pub发布/sub订阅实现机制,布布扣,bubuko.com

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

原文:http://blog.csdn.net/liuxinmingcode/article/details/21190651

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!