Redis Zrangebyscore 命令


Redis Zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。

具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。

默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。

举个例子:

  1. ZRANGEBYSCORE zset (1 5

返回所有符合条件 1

  1. ZRANGEBYSCORE zset (5 (10

则返回所有符合条件 5

语法

redis Zrangebyscore 命令基本语法如下:

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

可用版本

>= 1.0.5

返回值

指定区间内,带有分数值(可选)的有序集成员的列表。

实例

  1. redis 127.0.0.1:6379> ZADD salary 2500 jack # 测试数据
  2. (integer) 0
  3. redis 127.0.0.1:6379> ZADD salary 5000 tom
  4. (integer) 0
  5. redis 127.0.0.1:6379> ZADD salary 12000 peter
  6. (integer) 0
  7.  
  8. redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf # 显示整个有序集
  9. 1) "jack"
  10. 2) "tom"
  11. 3) "peter"
  12.  
  13. redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf WITHSCORES # 显示整个有序集及成员的 score 值
  14. 1) "jack"
  15. 2) "2500"
  16. 3) "tom"
  17. 4) "5000"
  18. 5) "peter"
  19. 6) "12000"
  20.  
  21. redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf 5000 WITHSCORES # 显示工资 <=5000 的所有成员
  22. 1) "jack"
  23. 2) "2500"
  24. 3) "tom"
  25. 4) "5000"
  26.  
  27. redis 127.0.0.1:6379> ZRANGEBYSCORE salary (5000 400000 # 显示工资大于 5000 小于等于 400000 的成员
  28. 1) "peter"