Latest web development tutorials

Redis Zrangebyscore 命令

Redis有序集合(sorted set)

Redis Zrangebyscore 返回有序集合中指定分數區間的成員列表。 有序集成員按分數值遞增(從小到大)次序排列。

具有相同分數值的成員按字典序來排列(該屬性是有序集提供的,不需要額外的計算)。

默認情況下,區間的取值使用閉區間(小於等於或大於等於),你也可以通過給參數前增加( 符號來使用可選的開區間(小於或大於)。

舉個例子:

ZRANGEBYSCORE zset (1 5

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

ZRANGEBYSCORE zset (5 (10

則返回所有符合條件5 < score < 10 的成員。

語法

redis Zrangebyscore 命令基本語法如下:

redis 127.0.0.1:6379> ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

可用版本

>= 1.0.5

返回值

指定區間內,帶有分數值(可選)的有序集成員的列表。

實例

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"

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

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

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

Redis有序集合(sorted set)