0%

Redis发布与订阅

Redis支持发布订阅功能,SUBSCRIBE命令可以让客户端订阅一个或者多个频道,PSUBSCRIBE可以让客户端订阅一个或多个模式的,PUBLISH用来发布消息。

频道的订阅和退订

客户端执行SUBSCRIBE可以订阅频道,订阅关系保存在服务器状态的pubsub_channels字典里:

  • 键时某个被订阅的频道
  • 值是一个链表,记录了所有订阅这个频道的客户端

退订频道的时候使用UNSUBSCRIBE命令,服务器会把客户端从pubsub_channels字典中删除。

发送消息

客户端使用PUBLISH <channel> <message>来发送消息给频道channel,服务器会执行:

  • 将消息发送给所有订阅了这个channel的订阅者
  • 如果有模式频道匹配到,则将消息发送给订阅了这个模式的订阅者

参考

  • 《redis设计与实现》(第二版)
坚持原创技术分享,您的支持将鼓励我继续创作!
Fork me on GitHub