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

返回有序集 key 中,全部 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。html

具備相同 score 值的成員按字典序(lexicographical order)來排列(該屬性是有序集提供的,不須要額外的計算)。python

可選的 LIMIT 參數指定返回結果的數量及區間(就像SQL中的 SELECT LIMIT offset, count ),注意當 offset 很大時,定位 offset 的操做可能須要遍歷整個有序集,此過程最壞複雜度爲 O(N) 時間。redis

可選的  WITHSCORES 參數決定結果集是單單返回有序集的成員,仍是將有序集成員及其  score 值一塊兒返回。
該選項自 Redis 2.0 版本起可用。

區間及無限測試

min 和 max 能夠是 -inf 和 +inf ,這樣一來,你就能夠在不知道有序集的最低和最高 score 值的狀況下,使用 ZRANGEBYSCORE 這類命令。spa

默認狀況下,區間的取值使用閉區間 (小於等於或大於等於),你也能夠經過給參數前增長 ( 符號來使用可選的開區間 (小於或大於)。htm

舉個例子:ip

ZRANGEBYSCORE zset (1 5

返回全部符合條件 score <= 5 的成員,而get

ZRANGEBYSCORE zset (5 (10

則返回全部符合條件 score 10 的成員。it

可用版本:
>= 1.0.5
時間複雜度:
O(log(N)+M),  N 爲有序集的基數,  M 爲被結果集的基數。
返回值:
指定區間內,帶有  score 值(可選)的有序集成員的列表。
redis> ZADD salary 2500 jack                        # 測試數據
(integer) 0
redis> ZADD salary 5000 tom
(integer) 0
redis> ZADD salary 12000 peter
(integer) 0

redis> ZRANGEBYSCORE salary -inf +inf               # 顯示整個有序集
1) "jack"
2) "tom"
3) "peter"

redis> ZRANGEBYSCORE salary -inf +inf WITHSCORES    # 顯示整個有序集及成員的 score 值
1) "jack"
2) "2500"
3) "tom"
4) "5000"
5) "peter"
6) "12000"

redis> ZRANGEBYSCORE salary -inf 5000 WITHSCORES    # 顯示工資 <=5000 的全部成員
1) "jack"
2) "2500"
3) "tom"
4) "5000"

redis> ZRANGEBYSCORE salary (5000 400000            # 顯示工資大於 5000 小於等於 400000 的成員
相關文章
相關標籤/搜索