LTRIM
语法
LTRIM key start stop
- 可用版本
- Redis 开源版 1.0.0
- 时间复杂度
- O(N),其中 N 是操作需要移除的元素数量。
- ACL 类别
-
@write
,@list
,@slow
,
修剪现有列表,使其仅包含指定范围内的元素。`start` 和 `stop` 都是基于零的索引,其中 `0` 是列表的第一个元素(头部),`1` 是下一个元素,以此类推。
例如:`LTRIM foobar 0 2` 将修改存储在 `foobar` 的列表,使其仅保留列表的前三个元素。
`start` 和 `end` 也可以是负数,表示从列表末尾开始的偏移量,其中 `-1` 是列表的最后一个元素,`-2` 是倒数第二个元素,以此类推。
超出范围的索引不会产生错误:如果 `start` 大于列表的末尾,或者 `start > end`,结果将是一个空列表(这会导致 `key` 被移除)。如果 `end` 大于列表的末尾,Redis 会将其视为列表的最后一个元素。
`LTRIM` 的一个常见用法是与 `LPUSH` / `RPUSH` 一起使用。例如
LPUSH mylist someelement
LTRIM mylist 0 99
这对命令会将新元素推入列表,同时确保列表不会超过 100 个元素。例如,在使用 Redis 存储日志时,这非常有用。需要注意的是,当以这种方式使用时,`LTRIM` 是一个 O(1) 操作,因为在平均情况下,只从列表尾部移除一个元素。