Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis ZRANGE 命令

Redis 有序集合 Redis 有序集合


ZRANGE 命令返回有序集合 key 中,指定区间内的成员。

命令格式

ZRANGE key start stop [WITHSCORES]

其中成员的位置按 score 值递增(从小到大)来排序。

具有相同 score 值的成员按字典序来排列。

如果你需要成员按 score 值递减来排列,请使用 ZREVRANGE 命令。

下标参数 start 和 stop 都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推。你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。超出范围的下标并不会引起错误。比如说,当 start 的值比有序集的最大下标还要大,或是 start > stop 时,ZRANGE 命令只是简单地返回一个空列表。另一方面,假如 stop 参数的值比有序集的最大下标还要大,那么 Redis 将 stop 当作最大下标来处理。

可以通过使用 WITHSCORES 选项,来让成员和它的 score 值一并返回,返回列表以 value1,score1, ..., valueN,scoreN 的格式表示。

客户端库可能会返回一些更复杂的数据类型,比如数组、元组等。

可用版本:>=1.2.0

时间复杂度:O(log(N)+M),N 为 有序集合的基数(成员个数),M 为结果集的基数。

命令返回值

指定区间内,带有 score 值(可选)的有序集成员的列表。

示例

redis> ZADD myzset 1 member_one
(integer) 1
redis> ZADD myzset 2 member_two
(integer) 1
redis> ZADD myzset 3 member_three
(integer) 1
redis> ZRANGE myzset 0 -1
1) "member_one"
2) "member_two"
3) "member_three"
redis> ZRANGE myzset 2 3
1) "member_three"
redis> ZRANGE myzset -2 -1
1) "member_two"
2) "member_three"