美文网首页
第十八章 发布与订阅

第十八章 发布与订阅

作者: 今天不想掉头发 | 来源:发表于2019-07-29 09:16 被阅读0次

    Redis的发布与订阅功能有PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令组成。

    频道的订阅与退订

    每当客户端执行SUBSCRIBE命令订阅某个或者某些频道的时,服务器会将客户端与被订阅的频道在pubsub_channels字典中进行关联。退订则是通过UNSUBSCRIBE命令来实现相反的功能。

    模式的订阅与退订

    与订阅频道类似,客户端执行PSUBSCRIBE命令订阅模式,服务器通过pubsub_patterns实行来记录客户端与被订阅模式的关系。
    退订模式择时通过PUNSUBSCRIBE命令来实现相反的功能。

    发送消息

    当Redis客户端执行PUBLISH <channel> <message>命令将消息message发送给频道channel的时候,服务器会执行如下2个操作:

    1. 将消息message发送给channel频道的所有订阅者(查看pubsub_channel字典找到对应的频道,发送给订阅该频道的所有客户端)
    2. 如果有一个或多个模式pattern与频道channel相匹配,那么将message发送给pattern模式的订阅者(遍历pubsub_patterns链表,查看该链表中的所有节点是否匹配相应的模式)

    查看订阅消息

    客户端可以通过PUBSUB命令查看频道或者模式的相关信息,比如某个频道目前有多少个订阅者,又或者某个模式目前有多少订阅者等等,都是通过读取pubsub_channels字典和pubsub_patterns链表中的信息来实现的。

    image.png

    相关文章

      网友评论

          本文标题:第十八章 发布与订阅

          本文链接:https://www.haomeiwen.com/subject/cplvrctx.html