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

来源:互联网 发布:客户数据怎么划分 编辑:程序博客网 时间:2024/05/15 11:48

     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_1Reading messages... (press Ctrl-C to quit)1) "subscribe"       # 返回值的类型:显示订阅成功2) "msg"             # 订阅的频道名字3) (integer) 100       # 目前已订阅的频道数量1) "subscribe"2) "msg_1"3) (integer) 11) "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做个监控,这样才能实施收到订阅信息。

   
0 0
原创粉丝点击