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

第十八章 发布与订阅

作者: 今天不想掉头发 | 来源:发表于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