Redis LRANGE命令

Redis LRANGE命令教程

Redis 的 LRANGE 命令用于返回 列表 KEY 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

Redis LRANGE命令详解

语法

192.168.98.70:6379> LRANGE key start stop

参数

参数 描述
KEY 要获取元素的列表的键。
start 要获取元素的开始索引。
stop 要获取元素的结束索引。

返回值

一个列表,包含指定区间内的元素。

时间复杂度

O(S+N), S 为偏移量 start , N 为指定区间内元素的数量。

可用版本

>= 1.0.0

超出范围的下标

超出范围的下标值不会引起错误。如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,那么 LRANGE 返回一个空列表。

如果 stop 下标比 end 下标还要大,Redis 将 stop 的值设置为 end 。

案例

索引在范围内

第一个元素下标为 0

192.168.98.70:6379> RPUSH haicoder Redis (integer) 1 192.168.98.70:6379> RPUSH haicoder Mongo (integer) 2 192.168.98.70:6379> RPUSH haicoder Mysql (integer) 3 192.168.98.70:6379> LRANGE haicoder 0 0 1) "Redis" 192.168.98.70:6379> LRANGE haicoder 0 1 1) "Redis" 2) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1

首先,我们使用 RPUSH 命令,向键为 haicoder 的列表的尾部分别插入值 Redis、Mongo、 Mysql。使用 LRANGE 命令,获取键为 haicoder 的列表第 1个元素,为 Redis。

最后,我们使用 LRANGE 命令,获取键为 haicoder 的列表第 1 个元素和第 2 个元素,为 Redis 和 Mongo。

stop大于长度

stop 被截取为列表最大下标

192.168.98.70:6379> RPUSH haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> LRANGE haicoder 0 100 1) "Redis" 2) "Mongo" 3) "Mysql" 4) "SqlServer" 192.168.98.70:6379> DEL haicoder (integer) 1

首先,我们使用 RPUSH 命令,向键为 haicoder 的列表的尾部分别插入值 Redis、Mongo、 Mysql、SqlServer。

最后,我们使用 LRANGE 命令,获取键为 haicoder 的列表第 1 个元素到第 101 个元素,此时索引 100 大于列表最大索引,被截取,返回了整个列表。

负数索引

负数索引,从后往前获取列表元素

192.168.98.70:6379> RPUSH haicoder Redis Mongo Mysql SqlServer (integer) 4 192.168.98.70:6379> LRANGE haicoder 0 -2 1) "Redis" 2) "Mongo" 3) "Mysql" 192.168.98.70:6379> DEL haicoder (integer) 1

首先,我们使用 RPUSH 命令,向键为 haicoder 的列表的尾部分别插入值 Redis、Mongo、 Mysql、SqlServer。接着,我们使用 LRANGE 命令,获取键为 haicoder 的列表第 1 个元素到倒数第 2 个元素。

其中,索引 -1 表示最后一个元素,索引 -2 表示倒数第二个元素。

Redis LRANGE命令总结

Redis 的 LRANGE 命令用于返回列表 KEY 中指定区间内的元素,区间以偏移量 start 和 stop 指定。Redis LRANGE 命令语法:

192.168.98.70:6379> LRANGE key start stop