Redis 发布订阅功能

简介

Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户端都可以收到该消息(频道没有”创建“的概念,可以直接订阅、亦可直接发布消息)。

命令

发布消息

PUBLISH

自2.0.0可用。

**时间复杂度:**O(N+M),其中 N 是频道 channel 的订阅者数量,而 M 则是使用模式订阅(subscribed patterns)的客户端的数量。

语法:PUBLISH channel message
说明:

将信息 message 发送到指定的频道 channel

返回值:

接收到信息 message 的订阅者数量。

示例:
# 向没有订阅者的频道发送信息
coderknock> PUBLISH new_channel "test publish"
(integer) 0
# 向有订阅者的频道发送信息
coderknock>  PUBLISH channel1 "new channel1"
(integer) 1

订阅

SUBSCRIBE

自2.0.0可用。

**时间复杂度:**O(N),其中 N 是订阅的频道的数量。

语法:SUBSCRIBE channel [channel …]
说明:

订阅给定的一个或多个频道的信息。

返回值:

接收到的信息(请参见下面的代码说明)。

示例:
coderknock> SUBSCRIBE channel1
Reading messages... (press Ctrl-C to quit)
# 订阅成功
1) "subscribe"      # 返回值的类型:显示订阅成功
2) "channel1"       # 订阅的频道名字
3) (integer) 1      # 目前已订阅的频道数量
# 接收到信息
1) "message"        # 返回值的类型:信息
2) "channel1"       # 来源(从哪个频道发送过来)
3) "new channel1"   # 信息内容

#### PSUBSCRIBE

自2.0.0可用。

**时间复杂度:**O(N), N 是订阅的模式的数量。

语法:PSUBSCRIBE pattern [pattern …]
说明:

订阅一个或多个符合给定模式的频道。

每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.newsit.blogit.tweets 等等), news.* 匹配所有以 news. 开头的频道( news.itnews.global.today 等等),诸如此类。

返回值:

接收到的信息(请参见下面的代码说明)。

示例:
coderknock> PSUBSCRIBE news.* coderknock.*
                           Reading messages... (press Ctrl-C to quit)
# 订阅成功
1) "psubscribe"     # 返回值的类型:显示订阅成功
2) "news.*"         # 订阅的频道名字
3) (integer) 1      # 目前已订阅的频道数量
1) "psubscribe"
2) "coderknock.*"
3) (integer) 2
# 接收到信息
1) "pmessage"       # 返回值的类型:信息
2) "news.*"         # 来源频道模式
3) "news.123"       # 具体频道(从哪个频道发送过来)
4) "123             # 消息

1) "pmessage"
2) "news.*"
3) "news.222
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三产

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值