返回有序集 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 的成员