LTRIM:修剪列表
LTRIM
命令接受一个列表和一个索引范围作为参数,它会移除列表中位于给定索引范围之外的所有元素,只保留给定范围之内的元素:
- LTRIM list start end
LTRIM
命令在移除操作执行完毕之后将返回 OK
作为结果。
比如对于以下这个 alphabets
列表来说:
- redis> RPUSH alphabets "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k"
- (integer) 11
执行以下命令可以让列表只保留索引 0
到索引 6
范围内的七个元素:
- redis> LTRIM alphabets 0 6
- OK
- redis> LRANGE alphabets 0 -1
- 1) "a"
- 2) "b"
- 3) "c"
- 4) "d"
- 5) "e"
- 6) "f"
- 7) "g"
在此之后,我们可以继续执行以下命令,让列表只保留索引 3
到索引 5
范围内的三个元素:
- redis> LTRIM alphabets 3 5
- OK
- redis> LRANGE alphabets 0 -1
- 1) "d"
- 2) "e"
- 3) "f"
图 4-22 展示了以上两个 LTRIM
命令对 alphabets
列表进行修剪的整个过程。
图 4-22 LTRIM
命令的执行过程
处理负数索引
跟 LRANGE
命令一样,LTRIM
命令不仅可以接受正数索引,还可以接受负数索引。
以下代码展示了如何通过给定负数索引,让 LTRIM
命令只保留列表的最后五个元素:
- redis> RPUSH numbers 0 1 2 3 4 5 6 7 8 9
- (integer) 10
- redis> LTRIM numbers -5 -1
- OK
- redis> LRANGE numbers 0 -1
- 1) "5"
- 2) "6"
- 3) "7"
- 4) "8"
- 5) "9"
其他信息
属性 | 值 |
---|---|
复杂度 | O(N) ,其中 N 为给定列表的长度。 |
版本要求 | LTRIM 命令从 Redis 1.0.0 版本开始可用。 |