XINFO 流

语法
XINFO STREAM key [FULL [COUNT count]]
从以下位置开始可用:
5.0.0
时间复杂度:
O(1)
ACL 类别:
@read, @stream, @slow,

此命令返回有关存储在<key>.

此命令提供的信息详细信息包括:

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

FULL修饰语

可选的FULLmodifier 提供更详细的回复。 如果提供,FULLreply 包括一个 entries 数组,该数组由按升序排列的流条目(ID 和字段值元组)组成。 此外,groups 也是一个数组,对于每个消费者组,它由XINFO GROUPSXINFO CONSUMERS.

为每个组提供了以下信息:

  • name:Consumer Group 的名称
  • last-delivered-id:传送给组使用者的最后一个条目的 ID
  • entries-read:传递给组的消费者的最后一个条目的逻辑 “read counter”
  • lag:流中仍等待传送给组使用者的条目数,如果无法确定该数量,则为 NULL。
  • pel-count:组的待处理条目列表 (PEL) 的长度,这些列表是已送达但尚未确认的消息
  • pending:包含待处理条目信息的数组(见下文)
  • consumers:包含消费者信息的数组(见下文)

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

  1. 消息的 ID。
  2. 获取消息但仍需确认消息的使用者的名称。我们将其称为消息的当前所有者
  3. 将消息传送给此使用者时的 UNIX 时间戳。
  4. 此消息的传递次数。

为每个使用者提供以下信息:

  • name:消费者的名称
  • seen-time:上次尝试交互的 UNIX 时间戳(示例:XREADGROUP,XCLAIM,XAUTOCLAIM)
  • active-time:上次成功交互的 UNIX 时间戳(示例:XREADGROUP实际上将一些条目读取到 PEL 中,XCLAIM/XAUTOCLAIM这实际上占用了一些条目)
  • pel-count: PEL: Consumer 的待处理消息中的条目数,即已送达但尚未确认的消息
  • pending:一个带有 pending entries 信息的数组,具有与上述相同的结构,只是省略了 Consumer 名称(冗余,因为无论如何我们都处于特定的 Consumer 上下文中)

请注意,在 Redis 7.2.0 之前,seen-time 用于表示上次成功的交互。 在 7.2.0 中,添加了 active-time,并将 seen-time 更改为表示上次尝试的交互。

COUNT选项可用于限制返回的流和 PEL 条目的数量(第一个<count>条目)。 默认的COUNT是 10 和 aCOUNT为 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) "recorded-first-entry-id"
14) "1719505260513-0"
15) "groups"
16) (integer) 1
17) "first-entry"
18) 1) "1638125133432-0"
    2) 1) "message"
       2) "apple"
19) "last-entry"
20) 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) "recorded-first-entry-id"
14) "1719505260513-0"
15) "entries"
16) 1) 1) "1638125133432-0"
       2) 1) "foo"
          2) "bar"
    2) 1) "1638125141232-0"
       2) 1) "foo"
          2) "bar2"
17) "groups"
18) 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 回复

以下选项之一:

  • Array reply:使用 FULL 参数时,以摘要形式提供有关流的信息列表。
  • Array reply:使用 FULL 参数时,扩展格式的流信息列表。

RESP3 回复

以下选项之一:

  • Map reply:如果未给出 FULL 参数,则以摘要形式提供有关流的信息列表。
  • Map reply:当给出 FULL 参数时,以扩展形式提供有关流的信息列表。

历史

  • 从 Redis 版本 6.0.0 开始:添加了FULL修饰语。
  • 从 Redis 版本 7.0.0 开始:添加了max-deleted-entry-id,entries-added,recorded-first-entry-id,entries-readlag领域
  • 从 Redis 版本 7.2.0 开始:添加了active-time字段,并将seen-time.
为本页评分
返回顶部 ↑