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
修饰语
可选的FULL
modifier 提供更详细的回复。
如果提供,FULL
reply 包括一个 entries 数组,该数组由按升序排列的流条目(ID 和字段值元组)组成。
此外,groups 也是一个数组,对于每个消费者组,它由XINFO GROUPS
和XINFO CONSUMERS
.
为每个组提供了以下信息:
- name:Consumer Group 的名称
- last-delivered-id:传送给组使用者的最后一个条目的 ID
- entries-read:传递给组的消费者的最后一个条目的逻辑 “read counter”
- lag:流中仍等待传送给组使用者的条目数,如果无法确定该数量,则为 NULL。
- pel-count:组的待处理条目列表 (PEL) 的长度,这些列表是已送达但尚未确认的消息
- pending:包含待处理条目信息的数组(见下文)
- consumers:包含消费者信息的数组(见下文)
为每个待处理条目提供以下信息:
- 消息的 ID。
- 获取消息但仍需确认消息的使用者的名称。我们将其称为消息的当前所有者。
- 将消息传送给此使用者时的 UNIX 时间戳。
- 此消息的传递次数。
为每个使用者提供以下信息:
- 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 回复
以下选项之一:
历史
- 从 Redis 版本 6.0.0 开始:添加了
FULL
修饰语。 - 从 Redis 版本 7.0.0 开始:添加了
max-deleted-entry-id
,entries-added
,recorded-first-entry-id
,entries-read
和lag
领域 - 从 Redis 版本 7.2.0 开始:添加了
active-time
字段,并将seen-time
.