Redis ZRANGEBYSCORE 命令

Redis 有序集合(ZSet)

Redis ZRANGEBYSCORE 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。

具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。

默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。

举个例子:

ZRANGEBYSCORE zset (1 5

返回所有符合条件 1 < score <= 5 的成员,而

ZRANGEBYSCORE zset (5 (10

则返回所有符合条件 5 < score < 10 的成员。

 

1. 语法

redis ZRANGEBYSCORE 命令基本语法如下:

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

 

2. 可用版本

>= 1.0.5

 

3. 返回值

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

 

4. 范例

# 测试数据

redis 127.0.0.1:6379> ZADD salary 2500 jack
(integer) 0
redis 127.0.0.1:6379> ZADD salary 5000 tom
(integer) 0
redis 127.0.0.1:6379> ZADD salary 12000 peter
(integer) 0

# 显示整个有序集
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf
1) "jack"
2) "tom"
3) "peter"

# 显示整个有序集及成员的 score 值
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf WITHSCORES
1) "jack"
2) "2500"
3) "tom"
4) "5000"
5) "peter"
6) "12000"

# 显示工资 <=5000 的所有成员
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf 5000 WITHSCORES 
1) "jack"
2) "2500"
3) "tom"
4) "5000"

# 显示工资大于 5000 小于等于 400000 的成员
redis 127.0.0.1:6379> ZRANGEBYSCORE salary (5000 400000
1) "peter"

Redis 有序集合(ZSet)

Redis ZRANK 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。语法:redis ZRANK 命令基本语法如下:ZRANK key member。可用版本:>= 2.0.0。返回值:如果成员是有序集 key 的成员,返回 member 的排名。如果成员不是有序集 key 的成员,返回 nil。