010_Redis的发布和订阅

本文介绍Redis中的发布订阅功能,包括subscribe、publish、unsubscribe等命令的使用方法及实例,同时还介绍了如何利用这些命令进行频道订阅、消息发布和退订操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. subscribe命令

1.1. 语法: subscribe channel [channel ...]。

1.2. subscribe命令用于订阅给定的一个或多个频道的信息。

1.3. 在Redis客户端, 运行该命令会阻塞, 用于接收信息。

1.4. 实例

2. publish命令

2.1. 语法: publish channel message。

2.2. publish命令用于将信息发送到指定的频道。

2.3. 返回接收到信息的订阅者数量。

2.4. 实例

2.4.1. 在客户端二发布消息

2.4.2. 客户端一接收到了频道发生的消息

3. unsubscribe命令

3.1. 语法: unsubscribe [channel [channel ...]]。

3.2. unsubscribe命令用于退订给定的一个或多个频道的信息。

3.3. unsubscribe命令如果没有频道被指定, 也即是一个无参数的unsubscribe命令被执行, 那么客户端subscribe命令订阅的所有频道都会被退订。在这种情况下, 命令会返回一个信息, 告知客户端所有被退订的频道。

4. psubscribe命令

4.1. 语法: psubscribe pattern [pattern ...]。

4.2. psubscribe命令订阅一个或多个符合给定模式的频道。

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

5. punsubscribe命令

5.1. 语法: punsubscribe [pattern [pattern ...]]。

5.2. punsubscribe命令用于退订所有给定模式的频道。

5.3. 如果没有模式被指定, 也即是一个无参数的punsubscribe调用被执行, 那么客户端使用psubscribe命令订阅的所有模式都会被退订。在这种情况下, 命令会返回一个信息, 告知客户端所有被退订的模式。

6. pubsub命令

6.1. 语法: pubsub subcommand [argument [argument ...]]。

6.2. pubsub命令用于查看订阅与发布系统状态, 它由数个不同格式的子命令组成。

6.3. 返回由活跃频道组成的列表。

6.4. 列出当前的活跃频道

6.4.1. 语法: pubsub channels [pattern]。

6.4.2. 列出当前的活跃频道。活跃频道指的是那些至少有一个订阅者的频道, 订阅模式的客户端不计算在内。

6.4.3. pattern参数是可选的:

  • 如果不给出pattern参数, 那么列出订阅与发布系统中的所有活跃频道。
  • 如果给出pattern参数, 那么只列出和给定模式pattern相匹配的那些活跃频道。

6.5. 返回给定频道的订阅者数量

6.5.1. 语法: pubsub numsub [channel-1 ... channel-n]。

6.5.2. 返回给定频道的订阅者数量, 订阅模式的客户端不计算在内。

6.5.3. 返回值: 一个多条批量回复(Multi-bulk reply), 回复中包含给定的频道, 以及频道的订阅者数量。格式为: 频道channel-1, channel-1的订阅者数量; 频道channel-2, channel-2的订阅者数量, 诸如此类。回复中频道的排列顺序和执行命令时给定频道的排列顺序一致。不给定任何频道而直接调用这个命令也是可以的, 在这种情况下, 命令只返回一个空列表。

6.6. 返回订阅模式的数量

6.6.1. 语法: pubsub numpat。

6.6.2. 注意, 这个命令返回的不是订阅模式的客户端的数量, 而是客户端订阅的所有模式的数量总和。相同的订阅也被计算在pubsub numpat之内。

6.6.3. 返回一个整数回复。

6.6.4. 实例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值