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"