XTRIM trims the stream to a given number of items, evicting older items
(items with lower IDs) if needed. The command is conceived to accept multiple
trimming strategies, however currently only a single one is implemented,
MAXLEN, and works exactly as the
MAXLEN option in XADD.
For example the following command will trim the stream to exactly the latest 1000 items:
XTRIM mystream MAXLEN 1000
It is possible to give the command in the following special form in order to make it more efficient:
XTRIM mystream MAXLEN ~ 1000
~ argument between the MAXLEN option and the actual count means that
the user is not really requesting that the stream length is exactly 1000 items,
but instead it could be a few tens of entries more, but never less than 1000
items. When this option modifier is used, the trimming is performed only when
Redis is able to remove a whole macro node. This makes it much more efficient,
and it is usually what you want.
The command returns the number of entries deleted from the stream.
"1621393094372-0"redis> XTRIM mystream MAXLEN 2
ERR Unknown or disabled command 'XTRIM'redis> XRANGE mystream - +
1) 1) "1621393094372-0" 2) 1) "field1" 2) "A" 3) "field2" 4) "B" 5) "field3" 6) "C" 7) "field4" 8) "D"