XDELEX
从流中删除一个或多个条目。
语法
XDELEX key [KEEPREF | DELREF | ACKED] IDS numids id [id ...]
引入版本:8.2.0
复杂度摘要:O(1)
从指定 key 处的流中删除一个或多个条目。
XDELEX 是 Redis Streams XDEL 命令的扩展,它提供了对如何删除有关消费者组的消息条目的更多控制。
必需参数
key
流键的名称。
IDS numids id [id ...]
IDS 块指定要删除的条目: - numids:后面的 ID 数量 - id [id ...]:要删除的一个或多个流条目 ID
注意:IDS 块可以位于命令中的任意位置,与其他命令相同。
可选参数
KEEPREF | DELREF | ACKED
指定删除条目时如何处理消费者组引用。从 Redis 8.2 开始可用。如果未指定选项,则默认使用 KEEPREF:
KEEPREF(默认):从流中删除指定条目,但在所有消费者组的 PEL(待处理条目列表)中保留对这些条目的现有引用。此行为类似于XDEL。DELREF:从流中删除指定条目,并从所有消费者组的待处理条目列表中删除对这些条目的所有引用,有效地清除消息的所有痕迹。如果条目 ID 不在流中,但存在悬空引用,则XDELEX和DELREF仍会删除所有这些引用。ACKED:仅删除所有消费者组读取并确认的条目。
该命令提供对流条目删除的细粒度控制,在与需要仔细管理待处理条目引用的消费者组一起工作时特别有用。
示例
redis> XADD mystream * field1 value1
"1784722083515-0"
redis> XADD mystream * field2 value2
"1784722083516-0"
redis> XADD mystream * field3 value3
"1784722083517-0"
redis> XRANGE mystream - +
1) 1) "1784722083515-0"
2) 1) "field1"
2) "value1"
2) 1) "1784722083516-0"
2) 1) "field2"
2) "value2"
3) 1) "1784722083517-0"
2) 1) "field3"
2) "value3"
redis> XDELEX mystream KEEPREF IDS 2 1526919030474-55 1526919030474-56
1) (integer) -1
2) (integer) -1
redis> XRANGE mystream - +
1) 1) "1784722083515-0"
2) 1) "field1"
2) "value1"
2) 1) "1784722083516-0"
2) 1) "field2"
2) "value2"
3) 1) "1784722083517-0"
2) 1) "field3"
2) "value3"
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下之一:
RESP3
以下之一:
资料来源:Redis 官方 XDELEX 文档;中文内容参考 Redis 文档许可。