返回有序集 key 中,全部 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。html
具備相同 score 值的成員按字典序(lexicographical order)來排列(該屬性是有序集提供的,不須要額外的計算)。python
可選的 LIMIT 參數指定返回結果的數量及區間(就像SQL中的 SELECT LIMIT offset, count ),注意當 offset 很大時,定位 offset 的操做可能須要遍歷整個有序集,此過程最壞複雜度爲 O(N) 時間。redis
區間及無限測試
min 和 max 能夠是 -inf 和 +inf ,這樣一來,你就能夠在不知道有序集的最低和最高 score 值的狀況下,使用 ZRANGEBYSCORE 這類命令。spa
默認狀況下,區間的取值使用閉區間 (小於等於或大於等於),你也能夠經過給參數前增長 ( 符號來使用可選的開區間 (小於或大於)。htm
舉個例子:ip
ZRANGEBYSCORE zset (1 5
返回全部符合條件 1 < score <= 5 的成員,而get
ZRANGEBYSCORE zset (5 (10
則返回全部符合條件 5 < score < 10 的成員。it
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 的成員