Redis 的 LTRIM 命令用于对一个 列表 进行修剪,就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。当 KEY 不是列表类型时,返回一个错误。
192.168.98.70:6379> LTRIM KEY start stop
参数 | 描述 |
---|---|
KEY | 要移除的列表的键。 |
start | 要移除的元素的开始索引。 |
stop | 要移除的元素的结束索引。 |
命令执行成功时,返回 ok 。
O(N), N 为被移除的元素的数量。
>= 1.0.0
超出范围的下标值不会引起错误。
如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,或者 start > stop , LTRIM 返回一个空列表(因为 LTRIM 已经将整个列表清空)。
如果 stop 下标比 end 下标还要大,Redis 将 stop 的值设置为 end 。
剩下索引内元素
192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LPUSH haicoder Mongo (integer) 2 192.168.98.70:6379> LPUSH haicoder Mysql (integer) 3 192.168.98.70:6379> LPUSH haicoder SqlServer (integer) 4 192.168.98.70:6379> LTRIM haicoder 1 2 OK 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mysql" 2) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部分别插入值 Redis、Mongo、 Mysql、SqlServer。最后,我们使用 LTRIM 命令,对键为 haicoder 的列表进行裁剪,只留下索引为 1 和 2 的元素。
stop 被截取为列表最大下标
192.168.98.70:6379> LPUSH haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> LTRIM haicoder 1 1000 OK 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mysql" 2) "Mongo" 3) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部分别插入值 Redis、Mongo、 Mysql、SqlServer。
最后,我们使用 LTRIM 命令,对键为 haicoder 的列表进行裁剪,留下索引为 1 和 1000 的元素,索引 1000 大于列表最大索引,所以被截取。
start 和 stop 都比最大索引大,且 start 小于 stop,列表被清空
192.168.98.70:6379> LPUSH haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> LTRIM haicoder 100 1000 OK 192.168.98.70:6379> LRANGE haicoder 0 -1 (empty list or set)
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部分别插入值 Redis、Mongo、 Mysql、SqlServer。
接着,我们使用 LTRIM 命令,对键为 haicoder 的列表进行裁剪,此时 start 索引和 stop 索引都比列表的最大索引大。
最后,我们使用 LRANGE 命令获取列表 haicoder 的所有元素,列表为空,即列表被清空了。
start 索引大于 stop 索引,列表被清空
192.168.98.70:6379> LPUSH haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> LTRIM haicoder 1000 100 OK 192.168.98.70:6379> LRANGE haicoder 0 -1 (empty list or set)
我们首先,使用 LPUSH 命令,向键为 haicoder 的列表的头部分别插入值 Redis、Mongo、 Mysql、SqlServer。
接着,我们使用 LTRIM 命令,对键为 haicoder 的列表进行裁剪,此时 start 索引和 stop 索引都比列表的最大索引大,且 start 索引大于 stop 索引。
最后,我们使用 LRANGE 命令获取列表 haicoder 的所有元素,列表为空,即列表被清空了。
Redis 的 LTRIM 命令用于对一个列表进行修剪,就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。Redis LTRIM 命令语法:
192.168.98.70:6379> LTRIM KEY start stop