首页 > 代码库 > Redis:八、发布订阅实现原理

Redis:八、发布订阅实现原理

Redis:相关内容

Redis发布订阅常用命令
1.psubscribe pattern [pattern...]
//订阅一个或多个符合给定模式的频道
2.pubsub subcommand [argument[argument...]]
//查看订阅与发布系统状态
3.publish channel message
将消息发送到指定的频道
4.punsubscribe [pattern [pattern...]]
退订所有给行模式的频道
5.subscribe channel [channel...]
订阅给定的一个或多个频道的信息
6.unsubscribe [channel [channel...]]
退订给定的频道

实现原理

1.订阅频道:pubsub_channels

 技术分享

订阅频道操作(subscribe channel):
1)如果已经存在订阅者,则添加到链表的尾部
2)如果没有订阅者,那么创建频道,然后添加订阅者
退订频道操作(unsubscribe channel):
1)找到对应的链表,进行删除
2)如果删除后,链表为空,则删除频道

2.模式订阅:pubsub_patterns

 技术分享

订阅模式频道操作(psubscribe pattern):
1)新建一个pubsubPattern结构
2)添加到链表的尾部
退订模式频道操作(punsubscribe pattern):
1)查找相应的pubsubPattern,然后删除
发送消息:
1)将消息发送给channel频道的所有订阅者
2)遍历整个pubsub_patterns表,查找匹配的模式,如果有一个或者多个模式与频道匹配,将消息发送给pattern模式的订阅者

Redis:八、发布订阅实现原理