我正在使用redis 2.6。我遇到了奇怪的ZRANGEBYSCORE
函数行为。我有一个长度约为几百万个元素的排序集。像这样的东西:
10 marry
15 john
25 bob
...
所以比较查询:
ZRANGEBYSCORE longset 25 50 LIMIT 0 20 works like a charm, it takes milliseconds
ZRANGEBYSCORE longset 25 50 this one hangs up for a minutes!!
我感兴趣的所有元素都在集合的前一百个中。我认为没有必要扫描重量大于“50”的元素,因为它是 SORTED 集。
请解释一下 redis 是如何扫描排序集的,以及为什么这两个查询之间存在如此大的差异。