Redis扩展功能之发布与订阅

  发布与订阅这个模式在Zookeeper中有详细的阐述以及Zookeeper是如何实现该功能的(参考Zookeeper应用之一:数据发布与订阅初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)Zookeeper - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com))。Redis同样实现了该功能,下面探讨Redis就这个功能是如何实现的。

  Redis提供了发布订阅功能用于消息的传输,其发布订阅机制包括三个部分,publishersubscriberChannel:

       

  发布者和订阅者都是Redis客户端,Channel则为Redis服务器端;发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。

  下面通过命令行模式模拟上诉过程,注意使用的命令:

  1、Redis客户端1订阅频道1和频道2

      

  2、Redis客户端2将消息发布在频道1和频道2
      

   3、Redis客户端1接收到频道1和频道2的消息
      

   退订使用unsubscribe命令。以上以完全匹配模式,如何使用模糊匹配模式(类似正则表达式)可以使用psubscribe/punsubscribe。

   总结:订阅某个频道或模式:

    客户端(client):  

      属性为pubsub_channels,该属性表明了该客户端订阅的所有频道

      属性为pubsub_patterns,该属性表示该客户端订阅的所有模式

    服务器端(RedisServer):

      属性为pubsub_channels,该服务器端中的所有频道以及订阅了这个频道的客户端

      属性为pubsub_patterns,该服务器端中的所有模式和订阅了这些模式的客户端

 


      

 

 

posted on 2022-02-24 10:41  池塘里洗澡的鸭子  阅读(54)  评论(0编辑  收藏  举报