gpt4 book ai didi

redis - 如何在排序集合中找到刚好低于某个值的元素

转载 作者:IT王子 更新时间:2023-10-29 06:14:27 24 4
gpt4 key购买 nike

首先,我是 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"

所以我的问题是有没有一种简单的方法可以让元素刚好低于某个值?

最佳答案

Like above, but for below, use ZREVRANGEBYSCORE, you should.

Yoda-speak 的翻译:

Redis 实际上有一个命令可以满足您的需求 - ZREVRANGEBYSCORE . ZREVRANGEBYSCORE 做与 ZRANGEBYSCORE 相同的事情,但使用反向排序(正如其名称中的“REV”所暗示的那样)。

正如您在评论中所显示的那样,这将使您只需一个电话即可轻松获得“低于 2000 人”的成员。愿原力与你同在。

关于redis - 如何在排序集合中找到刚好低于某个值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com