首先,我是Redis的新手。好吧,让我说我做了:
127.0.0.1:6379> zadd subs:x 0 0
127.0.0.1:6379> zadd subs:x 500 500
127.0.0.1:6379> zadd subs:x 1000 1000
127.0.0.1:6379> zadd subs:x 5000 5000
127.0.0.1:6379> zadd subs:x 10000 10000
我希望找到一个刚好超过2000和以下的元素。
以上简单易行:
127.0.0.1:6379> ZRANGEBYSCORE subs:x 2000 +inf LIMIT 0 1
1) "5000"
但是如何以简单的方式找到下面的元素?
1)我知道我能做到:
127.0.0.1:6379> ZRANGEBYSCORE subs:x -inf 2000 LIMIT 2 1
1) "1000"
但是在运行此命令之前我必须知道偏移量是2所以通常我必须首先找到偏移量。
2)或者我可以找到ZRANK,然后向后移动一步:
127.0.0.1:6379> ZRANK subs:x 5000
(integer) 3
127.0.0.1:6379> ZRANGE subs:x 2 2
1) "1000"
所以我的问题是有一种简单的方法可以使元素低于某个值吗?
答案 0 :(得分:1)
如上所述,但对于下方,请使用
ZREVRANGEBYSCORE
,
Yoda-speak的翻译:
Redis实际上提供的命令可以满足您的需求 - ZREVRANGEBYSCORE
。 ZREVRANGEBYSCORE
与ZRANGEBYSCORE
做同样的事情,但使用反向排序(正如其名称中的“REV”所示)。
如您在评论中所示,只需拨打一个电话即可轻松获得“2000以下”会员。愿力量与你同在。