©
This document uses PHP Chinese website manual Release
ZRANGE key start stop [WITHSCORES]
自1.2.0起可用。
时间复杂度: O( log(N)+ M),其中 N 是有序集合中元素的数量,M 是返回元素的数量。
返回存储在的有序集合中指定范围的元素key
。这些元素被认为是从最低分到最高分排序。字典顺序用于得分相同的元素。
当需要从最高到最低分数排序的元素时(请参阅相同分数元素的降序排列顺序),请参阅 ZREVRANGE。
两个start
和stop
是基于零的索引,其中0
是第一要素,1
是下一个元素等。它们也可以是负数,表示排序集结尾的偏移量,是排序集-1
的最后一个元素,-2
倒数第二个元素等等。
start
和stop
是包含范围,所以例如ZRANGE myzset 0 1
将返回排序集合的第一个元素和第二个元素。
超出范围的索引不会产生错误。如果start
大于有序集合中的最大索引,或者start > stop
返回空列表。如果stop
大于排序集的末尾,则 Redis 会将其视为排序集的最后一个元素。
可以传递WITHSCORES
选项以将元素的分数与元素一起返回。返回的列表将包含value1,score1,...,valueN,scoreN
而不是value1,...,valueN
。客户端库可以自由返回更合适的数据类型(建议:具有(值,分数)数组/元组的数组)。
数组回复:指定范围内的元素列表(可选择其分数,以防WITHSCORES
给出选项)。
redis> ZADD myzset 1 "one" (integer) 1
redis> ZADD myzset 2 "two" (integer) 1
redis> ZADD myzset 3 "three" (integer) 1
redis> ZRANGE myzset 0 -1 1) "one" 2) "two" 3) "three"
redis> ZRANGE myzset 2 3 1) "three"
redis> ZRANGE myzset -2 -1 1) "two" 2) "three"
以下示例WITHSCORES
显示了该命令如何总是返回一个数组,但这次使用 element_1 ,score_1 ,element_2 ,score_2 ,... ,element_N ,score_N 填充。
redis> ZRANGE myzset 0 1 WITHSCORES 1) "one" 2) "1" 3) "two" 4) "2"