Redis 有序集合(zset)

Redis zrevrangebyscore 命令用于返回在 key 处的排序集中分数介于最大值和最小值之间的所有元素,其元素分数为从高到低依次排序。

语法:

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

    返回值

    数组,指定分数范围内的元素列表(可选分数)。

    示例1:Redis zrevrangebyscore

    127.0.0.1:6379> zadd mysales 1556 Samsung 2000 Nokis 1800 Micromax
    (integer) 3
    127.0.0.1:6379> zadd mysales 2200 Sunsui 1800 MicroSoft 2500 LG
    (integer) 3
    127.0.0.1:6379> zrevrangebyscore  mysales +inf -inf WITHSCORES
     1) "LG"
     2) "2500"
     3) "Sunsui"
     4) "2200"
     5) "Nokis"
     6) "2000"
     7) "Micromax"
     8) "1800"
     9) "MicroSoft"
    10) "1800"
    11) "Samsung"
    12) "1556"
    127.0.0.1:6379> zrevrangebyscore  mysales 2000 1800 WITHSCORES
    1) "Nokis"
    2) "2000"
    3) "Micromax"
    4) "1800"
    5) "MicroSoft"
    6) "1800"
    127.0.0.1:6379> zrevrangebyscore  mysales +inf 2200 WITHSCORES
    1) "LG"
    2) "2500"
    3) "Sunsui"
    4) "2200" 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    示例2:Redis zrevrangebyscore 

    127.0.0.1:6379> zadd mysales 1556 Samsung 2000 Nokis 1800 Micromax
    (integer) 3
    127.0.0.1:6379> zadd mysales 2200 Sunsui 1800 MicroSoft 2500 LG
    (integer) 3
    127.0.0.1:6379> zrevrangebyscore  mysales +inf -inf WITHSCORES
     1) "LG"
     2) "2500"
     3) "Sunsui"
     4) "2200"
     5) "Nokis"
     6) "2000"
     7) "Micromax"
     8) "1800"
     9) "MicroSoft"
    10) "1800"
    11) "Samsung"
    12) "1556"
    127.0.0.1:6379> zrevrangebyscore  mysales (2100 (1800 WITHSCORES
    1) "Nokis"
    2) "2000"
    127.0.0.1:6379> zrevrangebyscore  mysales 2100 (1800 WITHSCORES
    1) "Nokis"
    2) "2000" 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    示例3:Redis zrevrangebyscore 

    127.0.0.1:6379> zadd mysales 1556 Samsung 2000 Nokis 1800 Micromax
    (integer) 3
    127.0.0.1:6379> zadd mysales 2200 Sunsui 1800 MicroSoft 2500 LG
    (integer) 3
    127.0.0.1:6379> zrevrangebyscore  mysales +inf -inf  WITHSCORES
     1) "LG"
     2) "2500"
     3) "Sunsui"
     4) "2200"
     5) "Nokis"
     6) "2000"
     7) "Micromax"
     8) "1800"
     9) "MicroSoft"
    10) "1800"
    11) "Samsung"
    12) "1556"
    127.0.0.1:6379> zrevrangebyscore  mysales +inf -inf  WITHSCORES LIMIT 0 3
    1) "LG"
    2) "2500"
    3) "Sunsui"
    4) "2200"
    5) "Nokis"
    6) "2000"
    127.0.0.1:6379> zrevrangebyscore  mysales +inf -inf  WITHSCORES LIMIT 3 10
    1) "Micromax"
    2) "1800"
    3) "MicroSoft"
    4) "1800"
    5) "Samsung"
    6) "1556" 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30