ZRANGE key start stop [WITHSCORES]

Redis ZRANGE 命令返回有序集中,指定区间内的成员,其中成员的按分数值递增(从小到大)来排序,具有相同分数值的成员按字典序(lexicographical order )来排列。

如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE命令。

下标参数 startstop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。

你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。

startstop 都是包含在内的区间,因此例如 ZRANGE myzset 0 1 将会返回有序集合的第一个和第二个元素。

超出范围的索引不会产生错误。 如果 start 参数的值大于有序集合中的最大索引,或者 start > stop ,将会返回一个空列表。 如果 stop 的值大于有序集合的末尾,Redis 会将其视为有序集合的最后一个元素。

可以传递 WITHSCORES 选项,以便将元素的分数与元素一起返回。这样返回的列表将包含 value1,score1,...,valueN,scoreN ,而不是 value1,...,valueN 。 客户端类库可以自由地返回更合适的数据类型(建议:具有值和得分的数组或元组)。

*语法

redis ZRANGE 命令基本语法如下:

redis 127.0.0.1:6379> ZRANGE key start stop [WITHSCORES]

*返回值

数组: 给定范围内的元素列表(如果指定了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"
redis> 

以下例子使用 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"
redis>