diff options
Diffstat (limited to '')
-rw-r--r-- | iredis/data/commands/xtrim.md | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/iredis/data/commands/xtrim.md b/iredis/data/commands/xtrim.md index 0903442..08d55d5 100644 --- a/iredis/data/commands/xtrim.md +++ b/iredis/data/commands/xtrim.md @@ -1,12 +1,9 @@ -`XTRIM` trims the stream by evicting older entries (entries with lower IDs) if -needed. +`XTRIM` trims the stream by evicting older entries (entries with lower IDs) if needed. Trimming the stream can be done using one of these strategies: -- `MAXLEN`: Evicts entries as long as the stream's length exceeds the specified - `threshold`, where `threshold` is a positive integer. -- `MINID`: Evicts entries with IDs lower than `threshold`, where `threshold` is - a stream ID. +* `MAXLEN`: Evicts entries as long as the stream's length exceeds the specified `threshold`, where `threshold` is a positive integer. +* `MINID`: Evicts entries with IDs lower than `threshold`, where `threshold` is a stream ID. For example, this will trim the stream to exactly the latest 1000 items: @@ -14,27 +11,23 @@ For example, this will trim the stream to exactly the latest 1000 items: XTRIM mystream MAXLEN 1000 ``` -Whereas in this example, all entries that have an ID lower than 649085820-0 will -be evicted: +Whereas in this example, all entries that have an ID lower than 649085820-0 will be evicted: ``` XTRIM mystream MINID 649085820 ``` -By default, or when provided with the optional `=` argument, the command -performs exact trimming. +By default, or when provided with the optional `=` argument, the command performs exact trimming. Depending on the strategy, exact trimming means: -- `MAXLEN`: the trimmed stream's length will be exactly the minimum between its - original length and the specified `threshold`. -- `MINID`: the oldest ID in the stream will be exactly the minimum between its - original oldest ID and the specified `threshold`. +* `MAXLEN`: the trimmed stream's length will be exactly the minimum between its original length and the specified `threshold`. +* `MINID`: the oldest ID in the stream will be exactly the maximum between its original oldest ID and the specified `threshold`. -## Nearly exact trimming +Nearly exact trimming +--- -Because exact trimming may require additional effort from the Redis server, the -optional `~` argument can be provided to make it more efficient. +Because exact trimming may require additional effort from the Redis server, the optional `~` argument can be provided to make it more efficient. For example: @@ -42,29 +35,19 @@ For example: XTRIM mystream MAXLEN ~ 1000 ``` -The `~` argument between the `MAXLEN` strategy and the `threshold` means that -the user is requesting to trim the stream so its length is **at least** the -`threshold`, but possibly slightly more. In this case, Redis will stop trimming -early when performance can be gained (for example, when a whole macro node in -the data structure can't be removed). This makes trimming much more efficient, -and it is usually what you want, although after trimming, the stream may have -few tens of additional entries over the `threshold`. - -Another way to control the amount of work done by the command when using the -`~`, is the `LIMIT` clause. When used, it specifies the maximal `count` of -entries that will be evicted. When `LIMIT` and `count` aren't specified, the -default value of 100 \* the number of entries in a macro node will be implicitly -used as the `count`. Specifying the value 0 as `count` disables the limiting -mechanism entirely. +The `~` argument between the `MAXLEN` strategy and the `threshold` means that the user is requesting to trim the stream so its length is **at least** the `threshold`, but possibly slightly more. +In this case, Redis will stop trimming early when performance can be gained (for example, when a whole macro node in the data structure can't be removed). +This makes trimming much more efficient, and it is usually what you want, although after trimming, the stream may have few tens of additional entries over the `threshold`. + +Another way to control the amount of work done by the command when using the `~`, is the `LIMIT` clause. +When used, it specifies the maximal `count` of entries that will be evicted. +When `LIMIT` and `count` aren't specified, the default value of 100 * the number of entries in a macro node will be implicitly used as the `count`. +Specifying the value 0 as `count` disables the limiting mechanism entirely. @return @integer-reply: The number of entries deleted from the stream. -@history - -- `>= 6.2`: Added the `MINID` trimming strategy and the `LIMIT` option. - @examples ```cli |