【redis】stream-查看groups-consumers-pels信息

发布于:2025-04-10 ⋅ 阅读:(36) ⋅ 点赞:(0)

在 Redis Stream 中,查看 消费者组(Consumer Groups) 和 消费者(Consumers) 的命令如下:


1. 查看 Stream 的所有消费者组

使用 XINFO GROUPS 命令列出指定 Stream 的所有消费者组:

XINFO GROUPS <stream_key>

示例:

XINFO GROUPS mystream

输出示例:

1) 1) "name"           # 消费者组名称
   2) "mygroup"
   3) "consumers"      # 当前活跃的消费者数量
   4) (integer) 2
   5) "pending"        # 未确认(PENDING)的消息数量
   6) (integer) 3
   7) "last-delivered-id"  # 最后投递的消息 ID
   8) "1630000000000-0"
   9) "entries-read"   # 已读取的消息数(Redis 7.0+)
  10) (integer) 100
  11) "lag"           # 消息积压数(未消费的消息数,Redis 7.0+)
  12) (integer) 5

2. 查看某个消费者组的所有消费者

使用 XINFO CONSUMERS 命令列出指定消费者组的所有消费者:

XINFO CONSUMERS <stream_key> <group_name>

示例:

XINFO CONSUMERS mystream mygroup

输出示例:

1) 1) "name"          # 消费者名称
   2) "consumer1"
   3) "pending"       # 该消费者未确认的消息数
   4) (integer) 2
   5) "idle"          # 空闲时间(毫秒,无活动时间)
   6) (integer) 36000
7) 1) "name"
8) 2) "consumer2"
9) 3) "pending"
10) 4) (integer) 1
11) 5) "idle"
12) 6) (integer) 1500

> xinfo consumers stream1 agroup
1) 1) "name"
   2) "aconsumer"
   3) "pending"
   4) "0"
   5) "idle"
   6) "280750101"

---
> xinfo groups stream1
1) "name"
	1) 2) "group_aa.mp4"
	2) 3) "consumers"
	3) 4) "1"
	4) 5) "pending"
	5) 6) "0"
	6) 7) "last-delivered-id"
	7) 8) "1743217447576-0"
2) 1) "name"
	1) 2) "agroup"
	2) 3) "consumers"
	3) 4) "1"
	4) 5) "pending"
	5) 6) "0"
	6) 7) "last-delivered-id"
	7) 8) "1743219769467-0"

3. 查看未确认(PENDING)的消息

如果需要检查消费者组中 未确认(ACK)的消息,使用 XPENDING

XPENDING <stream_key> <group_name> [<start_id> <end_id> <count> [<consumer_name>]]

示例:

# 查看 mygroup 中所有未确认的消息(前 10 条)
XPENDING mystream mygroup - + 10

# 查看 consumer1 的未确认消息
XPENDING mystream mygroup - + 10 consumer1

xpending stream1 agroup - + 10 
(empty list or set)

输出字段:
消息ID消费者名称空闲时间(毫秒)投递次数


4. 其他相关命令

命令 作用
XINFO STREAM <stream_key> 查看 Stream 的详细信息(长度、首个/最后一个 ID 等)
XLEN <stream_key> 查看 Stream 的消息总数
XRANGE <stream_key> <start_id> <end_id> 按范围读取消息
XREVRANGE <stream_key> <end_id> <start_id> 反向范围读取

总结

• 查看所有消费者组:XINFO GROUPS <stream_key>
• 查看组内消费者:XINFO CONSUMERS <stream_key> <group_name>
• 查看未确认消息:XPENDING <stream_key> <group_name>
• 监控消费者状态:结合 idle(空闲时间)和 pending(未确认数)判断消费者健康状态。

这些命令是 管理和监控 Redis Stream 消费者组 的核心工具,尤其在需要排查消息积压或消费者故障时非常有用。


网站公告

今日签到

点亮在社区的每一天
去签到