Redis:八发布订阅实现原理

Posted

tags:

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

Redis发布订阅和事务实现原理

Redis发布订阅实现原理

Redis发布订阅原理与实践

Redis 发布/订阅机制原理分析

Redis发布订阅与原理

面试被问到Redis实现发布与订阅,手摸手教