XINFO 流信息
Syntax
XINFO STREAM key [FULL [COUNT count]]
- Available since:
- 5.0.0
- Time complexity:
- O(1)
- ACL categories:
-
@read
,@stream
,@slow
,
此命令返回存储在
的流的信息。
此命令提供的信息详情如下:
- 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 GROUPS
和XINFO CONSUMERS
报告的信息组成。
为每个组提供以下信息:
- name: 消费者组的名称
- last-delivered-id: 最后传递给组消费者的条目的ID
- entries-read: 传递给组消费者的最后一个条目的逻辑“读取计数器”
- 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中的条目数:消费者的待处理消息,这些是已传递但尚未确认的消息
- pending: 一个包含待处理条目信息的数组,具有与上述相同的结构,只是省略了消费者名称(冗余,因为无论如何我们都在特定的消费者上下文中)
请注意,在Redis 7.2.0之前,seen-time用于表示最后一次成功的交互。 在7.2.0版本中,添加了active-time,并将seen-time更改为表示最后一次尝试的交互。
COUNT
选项可用于限制返回的流和PEL条目的数量(返回前
个条目)。
默认的 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) "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
的含义。