Redis:八发布订阅实现原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:八发布订阅实现原理的主要内容,如果未能解决你的问题,请参考以下文章