命令
# 订阅频道ch1
subscribe ch1
# 发布频道ch1消息hi
publish ch1 hi
# 取消订阅
unsubscribe ch1
# 模式订阅。
# ?代表一个占位符、*代表任意占位符、?*代表1个以上占位符
psubscribe c? b* d?*
原理
发布订阅的实现其实是通过key为频道value为储存订阅频道客户端的字典的链表去实现的,发布时直接遍历所在频道的链表进行消息发送
而基于模式的订阅是通过pubsub_patterns的链表去实现的。订阅时创建包含客户端信息和模式的pubsub_patterns,并添加到链表中
在发布时,就会遍历该链表检查是否匹配模式,然后发送消息给匹配客户端
Ref
- https://redisbook.readthedocs.io/en/latest/feature/pubsub.html
本文介绍了Redis中命令操作如订阅、发布和取消订阅的实现方式,重点讲解了基于模式的订阅如何通过`pubsub_patterns`链表进行消息匹配和发送。
1万+

被折叠的 条评论
为什么被折叠?



