Redis LRANGE命令教程
下标参数 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
首先,我们使用
最后,我们使用 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