XINFO STREAM

用法
XINFO STREAM key [ FULL [ COUNT count ] ]
复杂度
O(1)
始于
5.0.0
ACL 类别
@stream, @read, @slow

此命令返回存储在 <key> 的流的信息。

此命令提供的信息详情包括

  • length: 流中的条目数量(参见 XLEN
  • radix-tree-keys: 底层基数数据结构中的键数量
  • radix-tree-nodes: 底层基数数据结构中的节点数量
  • groups: 为流定义的消费者组数量
  • last-generated-id: 添加到流中的最新(最近生成的)条目的 ID
  • max-deleted-entry-id: 从流中删除的最大条目 ID
  • entries-added: 流在其生命周期内添加的所有条目总数
  • first-entry: 流中第一个条目的 ID 和字段-值元组
  • last-entry: 流中最后一个条目的 ID 和字段-值元组

FULL 修饰符

可选的 FULL 修饰符提供了更详细的回复。当提供此修饰符时,FULL 回复包含一个 entries 数组,该数组由按升序排列的流条目(ID 和字段-值元组)组成。此外,groups 也是一个数组,对于每个消费者组,它包含 XINFO GROUPSXINFO CONSUMERS 报告的信息。

为每个组提供以下信息

  • name: 消费者组的名称
  • last-delivered-id: 交付给组消费者的最后一个条目的 ID
  • entries-read: 交付给组消费者的最后一个条目的逻辑“读取计数器”
  • lag: 流中仍等待交付给组消费者的条目数量,如果无法确定此数量则为 NULL。
  • pel-count: 组的待处理条目列表(PEL)的长度,这些消息已被交付但尚未被确认
  • pending: 包含待处理条目信息的数组(见下文)
  • consumers: 包含消费者信息的数组(见下文)

为每个待处理条目提供以下信息

  1. 消息的 ID。
  2. 获取了消息但尚未确认的消费者的名称。我们称之为消息当前的所有者
  3. 消息交付给此消费者时的 UNIX 时间戳。
  4. 此消息已被交付的次数。

为每个消费者提供以下信息

  • name: 消费者的名称
  • seen-time: 最后一次尝试交互的 UNIX 时间戳(例如:XREADGROUP, XCLAIM, XAUTOCLAIM
  • active-time: 最后一次成功交互的 UNIX 时间戳(例如:实际读取了一些条目到 PEL 的 XREADGROUP,实际声明了一些条目的 XCLAIM/XAUTOCLAIM
  • pel-count: PEL 中的条目数量:消费者的待处理消息,这些消息已被交付但尚未被确认
  • pending: 包含待处理条目信息的数组,结构与上述相同,但省略了消费者名称(冗余,因为我们已处于特定消费者上下文中)

请注意,在 Redis OSS 7.2.0 之前,seen-time 表示最后一次成功交互。在 7.2.0 中,添加了 active-time,并且 seen-time 的含义更改为表示最后一次尝试交互。

COUNT 选项可用于限制返回的流和 PEL 条目数量(返回前 <count> 个条目)。默认的 COUNT 是 10,COUNT 为 0 意味着将返回所有条目(如果流有大量条目,执行时间可能会很长)。

示例

默认回复

> XINFO STREAM mystream
 1) "length"
 2) (integer) 2
 3) "radix-tree-keys"
 4) (integer) 1
 5) "radix-tree-nodes"
 6) (integer) 2
 7) "last-generated-id"
 8) "1638125141232-0"
 9) "max-deleted-entry-id"
10) "0-0"
11) "entries-added"
12) (integer) 2
13) "groups"
14) (integer) 1
15) "first-entry"
16) 1) "1638125133432-0"
    2) 1) "message"
       2) "apple"
17) "last-entry"
18) 1) "1638125141232-0"
    2) 1) "message"
       2) "banana"

完整回复

> XADD mystream * foo bar
"1638125133432-0"
> XADD mystream * foo bar2
"1638125141232-0"
> XGROUP CREATE mystream mygroup 0-0
OK
> XREADGROUP GROUP mygroup Alice COUNT 1 STREAMS mystream >
1) 1) "mystream"
   2) 1) 1) "1638125133432-0"
         2) 1) "foo"
            2) "bar"
> XINFO STREAM mystream FULL
 1) "length"
 2) (integer) 2
 3) "radix-tree-keys"
 4) (integer) 1
 5) "radix-tree-nodes"
 6) (integer) 2
 7) "last-generated-id"
 8) "1638125141232-0"
 9) "max-deleted-entry-id"
10) "0-0"
11) "entries-added"
12) (integer) 2
13) "entries"
14) 1) 1) "1638125133432-0"
       2) 1) "foo"
          2) "bar"
    2) 1) "1638125141232-0"
       2) 1) "foo"
          2) "bar2"
15) "groups"
16) 1)  1) "name"
        2) "mygroup"
        3) "last-delivered-id"
        4) "1638125133432-0"
        5) "entries-read"
        6) (integer) 1
        7) "lag"
        8) (integer) 1
        9) "pel-count"
       10) (integer) 1
       11) "pending"
       12) 1) 1) "1638125133432-0"
              2) "Alice"
              3) (integer) 1638125153423
              4) (integer) 1
       13) "consumers"
       14) 1) 1) "name"
              2) "Alice"
              3) "seen-time"
              4) (integer) 1638125133422
              5) "active-time"
              6) (integer) 1638125133432
              7) "pel-count"
              8) (integer) 1
              9) "pending"
              10) 1) 1) "1638125133432-0"
                     2) (integer) 1638125133432
                     3) (integer) 1

RESP2 回复

以下之一

  • 数组回复: 未提供 FULL 参数时,以摘要形式列出流信息。

  • 数组回复: 提供 FULL 参数时,以扩展形式列出流信息。

RESP3 回复

以下之一

  • 映射回复: 未提供 FULL 参数时,以摘要形式列出流信息。

  • 映射回复: 提供 FULL 参数时,以扩展形式列出流信息。

历史

版本 变更
6.0.0

添加了 FULL 修饰符。

7.0.0

添加了 max-deleted-entry-identries-addedrecorded-first-entry-identries-readlag 字段。

7.2.0

添加了 active-time 字段,并更改了 seen-time 的含义。