XTRIM将流裁剪为指定数量的项目,如有需要,将驱逐旧的项目(ID较小的项目)。此命令被设想为接受多种修整策略,但目前只实现了一种,即MAXLEN,并且与XADD中的MAXLEN选项完全相同。

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

XTRIM mystream MAXLEN 1000

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

XTRIM mystream MAXLEN ~ 1000

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

返回值

integer-reply

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

redis> XADD mystream * field1 A field2 B field3 C field4 D
"1539863719429-0"
redis> XTRIM mystream MAXLEN 2
ERR Unknown or disabled command 'XTRIM'
redis> XRANGE mystream - +
1) 1) "1539863719429-0"
   2) 1) "field1"
	  2) "A"
	  3) "field2"
	  4) "B"
	  5) "field3"
	  6) "C"
	  7) "field4"
	  8) "D"
redis> 

关于本文翻译者

网名:eson
github:helloeson
打赏他(备注rediscn)
微信