【Redis】订阅 & 发布

说明

Redis 为 订阅 & 发布 模型如下,共有 6 个命令。

mark

相关命令

subscribe 订阅

subscribe channel [channels]

127.0.0.1:6379> subscribe news.it news.sport
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "news.it"
3) (integer) 1
1) "subscribe"
2) "news.sport"
3) (integer) 2 # 订阅后 客户端 挂起等待接受消息

psubscribe 模式订阅

psubscribesubscribe 的差别只有一个地方,其他都一样

  • subscribe:只能订阅指定名称的频道
  • psubscribe:可以使用通配符 指定频道
# 客户端1 使用 模式订阅
127.0.0.1:6379> psubscribe news.*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news.*"
3) (integer) 1
# 接收到的消息
1) "pmessage"
2) "news.*"
3) "news.a"
4) "testa"
1) "pmessage"
2) "news.*"
3) "news.b"
4) "testb"

# 客户端2 发送消息
127.0.0.1:6379> publish news.a testa
(integer) 1
127.0.0.1:6379> publish news.b testb
(integer) 1

publish 发送消息

publish channel message 发送消息到指定的频道

127.0.0.1:6379> publish news.it test
(integer) 1 # 发送成功
127.0.0.1:6379> publish xx test
(integer) 0 # 发送失败

pubsub 查看订阅状态

pubsub <子命令>

  • pubsub channels:默认查看所有使用 subscribe 命令订阅的频道,可以使用匹配
127.0.0.1:6379> pubsub channels
1) "news.sport"
2) "news.it"
127.0.0.1:6379> pubsub channels news.*
1) "news.sport"
2) "news.it"
  • pubsub numsub channel [channel]:查看 指定频道 订阅数量
127.0.0.1:6379> pubsub numsub news.it news.sport
1) "news.it"
2) (integer) 1
3) "news.sport"
4) (integer) 1
  • pubsub numpat:返回使用 psubscribe命令 客户端的总数量
# 客户端 1 订阅
127.0.0.1:6379> psubscribe news.good
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news.good"
3) (integer) 1

# 客户端2 查看 psubscribe 订阅的数量
127.0.0.1:6379> pubsub numpat
(integer) 1
127.0.0.1:6379>

unsubscribe 退订指定的频道

unsubscribe channel [channels]

127.0.0.1:6379> unsubscribe news.it # 退订 news.it 频道
1) "unsubscribe" # 退订
2) "news.it" # 退订的频道名称
3) (integer) 0 # 订阅的数量

punsubscribe 退订使用 模式订阅 频道

punsubscribe channel [channels] 的差别只有一个地方,其他都一样

  • unsubscribe:只能退订指定名称的频道
  • punsubscribe:可以使用通配符 退订频道
127.0.0.1:6379> punsubscribe news.*
1) "punsubscribe" # 退订
2) "news.*" # 退订的频道名称
3) (integer) 0 # 订阅的数量
发表评论 / Comment

用心评论~