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)