xtrim 命令

XTRIM 将流裁剪为指定数量的项目,如有需要,将驱逐旧的项目(ID较小的项目)。

语法

XTRIM key MAXLEN | MINID [~] count

key:队列名称。MAXLEN:长度。count:数量。 ~ :限制数量不少于。

可以使用以下策略之一对流进行修剪:

  • MAXLEN:只要流的长度超过指定的threshold,threshold就逐出条目,其中是一个正整数。
  • MINID:逐出ID低于的条目threshold,其中threshold是流ID。

返回值

返回从流中删除的条目数。

实例

例如,下面的命令会将流裁剪到最新的1000个项目:

XTRIM mystream MAXLEN 1000

可以使用以下特殊形式提供命令,以提高其效率:

XTRIM mystream MAXLEN ~ 1000

参数 ~ 意思是,用户不是真的需要精确的1000个项目。它可以多几十个条目,但决不能少于1000个。通过使用这个参数,仅当我们移除整个节点的时候才执行修整。这使得命令更高效,而且这也是我们通常想要的。

实例

redis> XADD mystream * field1 A field2 B field3 C field4 D
"1539863719429-0"

redis> XTRIM mystream MAXLEN 2
(integer) 0

redis> XRANGE mystream - +
1) 1) "1539863719429-0"
2) 1) "field1"
	  2) "A"
	  3) "field2"
	  4) "B"
	  5) "field3"
	  6) "C"
	  7) "field4"
	  8) "D"

上篇: xadd 命令

下篇: xdel 命令