- 用法
-
LRANGE key start stop
- 复杂度
- O(S+N),其中 S 是对于小列表,起始偏移量距离 HEAD 的距离;对于大列表,起始偏移量距离最近的端点(HEAD 或 TAIL)的距离;N 是指定范围内元素的数量。
- 起始版本
- 1.0.0
- ACL 类别
- @list, @read, @slow
返回存储在 key
处的列表的指定元素。偏移量 start
和 stop
是从零开始的索引,其中 0
是列表的第一个元素(列表的头部),1
是下一个元素,依此类推。
这些偏移量也可以是负数,表示从列表末尾开始的偏移量。例如,-1
是列表的最后一个元素,-2
是倒数第二个,依此类推。
与各种编程语言中范围函数的一致性
请注意,如果您有一个从 0 到 100 的数字列表,LRANGE list 0 10
将返回 11 个元素,即包含最右侧的项。这可能与也可能不与您选择的编程语言中范围相关函数的行为一致(例如 Ruby 的 Range.new
、Array#slice
或 Python 的 range()
函数)。
超出范围的索引
超出范围的索引不会产生错误。如果 start
大于列表的末尾,则返回一个空列表。如果 stop
大于列表的实际末尾,Valkey 会将其视为列表的最后一个元素。
示例
127.0.0.1:6379> RPUSH mylist "one"
(integer) 1
127.0.0.1:6379> RPUSH mylist "two"
(integer) 2
127.0.0.1:6379> RPUSH mylist "three"
(integer) 3
127.0.0.1:6379> LRANGE mylist 0 0
1) "one"
127.0.0.1:6379> LRANGE mylist -3 2
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> LRANGE mylist -100 100
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> LRANGE mylist 5 10
(empty array)
RESP2/RESP3 回复
数组回复:指定范围内的元素列表,如果键不存在则为空数组。