这两个Redis命令是否不同,除了第二个具有可选的LIMIT
参数?
http://redis.io/commands/zrange
http://redis.io/commands/zrangebyscore
答案 0 :(得分:15)
他们是不同的:
ZRANGE key start stop ...
:start
和stop
是从零开始的索引(即它们对应于有序集合中元素的位置),ZRANGEBYSCORE key min max ...
:min
和max
是指得分(即用于指定得分范围)。因此,第一个按索引操作,而第二个(顾名思义)按分数操作。因此它们用于不同的目的。
答案 1 :(得分:0)
说,排序的集合是:
value score
tom 0
bob 1
alice 100
lucy 102
使用zrangebyscores
时,最高分是2,最低分是0,那么您将得到tom
和bob
;
当您使用zrange
且起点为0,终点为2时,您将得到tom
,bob
和alice
。
127.0.0.1:6379> zadd example 0 tom 1 bob 100 alice 102 lucy
127.0.0.1:6379> zrange example 0 2 WITHSCORES
1) "tom"
2) "0"
3) "bob"
4) "1"
5) "alice"
6) "100"
127.0.0.1:6379> zrangebyscore example 0 2 WITHSCORES
1) "tom"
2) "0"
3) "bob"
4) "1"
这是关键区别。