跳到主要内容

发布订阅

2025年01月10日
柏拉文
越努力,越幸运

前言


Redis 文档

一、pubsub


1.1 认识

pubsubRedis 提供的命令,用于管理和查询发布/订阅(Pub/Sub)系统的状态。它允许您查询有关频道的信息、订阅的数量等。

1.2 语法

pubsub(subcommand: "CHANNELS", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "CHANNELS", pattern: string, callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "HELP", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "NUMPAT", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "NUMSUB", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(...args: [subcommand: "NUMSUB", ...channels: (string | Buffer)[], callback: Callback<unknown[]>]): Promise<unknown[]>
pubsub(...args: [subcommand: "NUMSUB", ...channels: (string | Buffer)[]]): Promise<unknown[]>
pubsub(subcommand: "SHARDCHANNELS", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "SHARDCHANNELS", pattern: string, callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(subcommand: "SHARDNUMSUB", callback?: Callback<unknown[]>): Promise<unknown[]>
pubsub(...args: [subcommand: "SHARDNUMSUB", ...shardchannels: (string | Buffer)[], callback: Callback<unknown[]>]): Promise<unknown[]>
pubsub(...args: [subcommand: "SHARDNUMSUB", ...shardchannels: (string | Buffer)[]]): Promise<unknown[]>
  • HELP: 返回有关 pubsub 命令的帮助信息。

    pubsub("HELP", callback?: Callback<unknown[]>)
    • 返回值: 帮助信息
  • NUMPAT: 返回当前有多少个模式(patterns)被订阅。

    pubsub("NUMPAT", callback?: Callback<unknown[]>)
    • 返回值: 模式数量。
  • NUMSUB: 返回某些频道的订阅者数量。可以提供一个或多个频道名称。

    pubsub("NUMSUB", callback?: Callback<unknown[]>)
    pubsub("NUMSUB", ...channels: (string | Buffer)[], callback?: Callback<unknown[]>)
    • 返回值: 每个频道的订阅者数量。
  • CHANNELS: 用于列出当前所有已订阅的频道。可以通过提供一个模式(pattern)来过滤频道名。

    pubsub("CHANNELS", callback?: Callback<unknown[]>)
    pubsub("CHANNELS", pattern: string, callback?: Callback<unknown[]>)
    • 返回值: 所有订阅的频道,或者按模式匹配的频道。
  • SHARDNUMSUB: 返回某些分片频道的订阅者数量。可以提供一个或多个分片频道名称。

    pubsub("SHARDNUMSUB", callback?: Callback<unknown[]>)
    pubsub("SHARDNUMSUB", ...shardchannels: (string | Buffer)[], callback?: Callback<unknown[]>)
    • 返回值: 每个分片频道的订阅者数量。
  • SHARDCHANNELS: 返回当前所有分片的频道。可以通过提供一个模式来过滤分片频道。

    pubsub("SHARDCHANNELS", callback?: Callback<unknown[]>)
    pubsub("SHARDCHANNELS", pattern: string, callback?: Callback<unknown[]>)
    • 返回值: 所有分片的频道或匹配模式的分片频道。

二、publish


2.1 认识

publishRedis 提供的一个发布消息的命令,它属于发布/订阅 (Pub/Sub) 系统的一部分。通过 publish 命令,您可以将消息发布到指定的频道中,任何订阅该频道的客户端都会收到消息。

2.2 语法

publish(channel: string | Buffer, message: string | Buffer, callback?: Callback<number>): Promise<number>
  • channel (string | Buffer): 频道的名称,可以是字符串或 Buffer 类型。频道是用于消息传递的主题,订阅者将基于这个频道来接收消息。

  • message (string | Buffer): 要发布的消息内容,可以是字符串或 Buffer 类型。

  • callback (Callback<number>, 可选): 可选的回调函数,用于返回操作结果。

三、subscribe


3.1 认识

Redis 的订阅命令,用于订阅一个或多个频道。

3.2 语法

subscribe(...args: [...channels: (string | Buffer)[], callback: Callback<unknown>]): Promise<unknown>
  • channels: 一个或多个频道名称,可以是字符串或 Buffer 类型。你可以通过传入多个频道名称来订阅多个频道。

  • callback: 可选的回调函数,它在接收到消息时被触发。通常,回调中会收到发布的消息内容。