Redis发布订阅怎么用?

命令

# 订阅频道ch1
subscribe ch1 
# 发布频道ch1消息hi
publish ch1 hi
# 取消订阅
unsubscribe ch1
# 模式订阅。
# ?代表一个占位符、*代表任意占位符、?*代表1个以上占位符
psubscribe c? b* d?*

原理

发布订阅的实现其实是通过key为频道value为储存订阅频道客户端的字典的链表去实现的,发布时直接遍历所在频道的链表进行消息发送

而基于模式的订阅是通过pubsub_patterns的链表去实现的。订阅时创建包含客户端信息和模式的pubsub_patterns,并添加到链表中

在发布时,就会遍历该链表检查是否匹配模式,然后发送消息给匹配客户端

Ref

  1. https://redisbook.readthedocs.io/en/latest/feature/pubsub.html

你可能感兴趣的:(db,redis,数据库,缓存)