LRANGE

用法
LRANGE key start stop
复杂度
O(S+N),其中 S 是对于小列表,起始偏移量距离 HEAD 的距离;对于大列表,起始偏移量距离最近的端点(HEAD 或 TAIL)的距离;N 是指定范围内元素的数量。
起始版本
1.0.0
ACL 类别
@list, @read, @slow

返回存储在 key 处的列表的指定元素。偏移量 startstop 是从零开始的索引,其中 0 是列表的第一个元素(列表的头部),1 是下一个元素,依此类推。

这些偏移量也可以是负数,表示从列表末尾开始的偏移量。例如,-1 是列表的最后一个元素,-2 是倒数第二个,依此类推。

与各种编程语言中范围函数的一致性

请注意,如果您有一个从 0 到 100 的数字列表,LRANGE list 0 10 将返回 11 个元素,即包含最右侧的项。这可能与也可能不与您选择的编程语言中范围相关函数的行为一致(例如 Ruby 的 Range.newArray#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 回复

数组回复:指定范围内的元素列表,如果键不存在则为空数组。