XDEL:移除指定元素

XDEL 命令接受一个流以及任意多个元素 ID 作为输入,并从流中移除 ID 对应的元素:

XDEL stream [id id ... id]

XDEL 命令在成功执行之后将返回被移除元素的数量作为结果。

image 2025 01 05 12 00 47 648
Figure 1. 图10-7 执行移除操作之前的trash-stream流

举个例子,对于图10-7所示的流 trash-stream 来说,如果我们执行以下命令:

redis> XDEL trash-stream 2000000000000
(integer) 1

那么流中 ID 为 2000000000000 的元素将被移除,并且命令会返回 1 表示有一个元素被移除。在此之后,如果继续执行以下命令:

redis> XDEL trash-stream 1000000000000 4000000000000
(integer) 2

那么命令将移除流中 ID 为 1000000000000 和 4000000000000 的元素,并返回数字 2 表示成功移除了两个元素。图10-8 展示了执行两次 XDEL 命令之后的 trash-stream 流。

image 2025 01 05 12 02 45 960
Figure 2. 图10-8 执行移除操作之后的trash-stream流

其他信息

  • 复杂度:O(log(N)*M),其中 N 为流包含的元素数量,而M则为被移除元素的数量。

  • 版本要求:XDEL 命令从 Redis 5.0.0 版本开始可用。