当前位置: 首页 > 面试题库 >

Redis:排序并获取n个邻居键

诸葛奇玮
2023-03-14
问题内容

假设我在Redis中有这些对:

1237.56 "John"
1224.59 "Robert"
1213.34 "Mahmoud"
1242.90 "George"
1020.11 "Mary"
1723.09 "Jay"
1589.77 "Khan"
1106.62 "Albert"

键始终是十进制数字。当提供一个数字时,我想在两个方向上获得最接近数字的两个键。

例如,如果我搜索的邻居1242,则结果集应具有:

1224.59 "Robert"
1237.56 "John"
1242.90 "George"
1589.77 "Khan"

这可能吗?我还是Redis的新手,感谢您的帮助。


问题答案:

是和不是同一时间。

为什么是? 唯一的redis数据类型-SORTED SET允许您获取基于十进制的值范围。因此,使用ZRANGEBYSCORE,您可以按分数范围获取值。

ZRANGEBYSCORE theKey 1220 1600

为您提供所需的数据集。

为什么不呢?
在您的问题中,您会问得分高的邻居。ZRANGEBYSCORE可以获取从最小分数到最大分数的值,但不能“获得小于给定值的X值”或“大于给定值的X值”。



 类似资料:
  • 这是我用来检测更改的电话状态侦听器 问题是目前我获取的所有手机信息如下: 结果- 我如何解析它以从上述结果中获得CellInfoLte、CellIdentityLte和CellSignalStrengthLte

  • 问题内容: 我在Redis(Spring Data Redis)中有以下键, 如果要根据 ID /名称/站点 进行排序,该怎么做? 和, 不工作。 问题答案: 该代码位于文章的最后,如果您熟悉redis中的多hset键排序的原理,请跳过以下内容并直接阅读代码。 Redis Sort旨在对List / Set / Zset中的字段进行排序,但是该方法可用于根据所需的指定指标对多键进行排序。我们可以使

  • 我正在写一个小程序,介绍如何计算网格中给定位置的邻域之和。由于某些原因,程序无法识别正确的值。我想知道这可能是因为我使用了try-catch来限制出界,还是我错过了什么? 我使用的是一个简单的3x3网格,编号为1-9。我在许多其他测试中使用了相同的矩阵,因此假设网格没有问题。即使我在一步一步地调试和检查时得到了11。我不太明白,有人有主意吗? 和中的-1只是将其强制为11(2 4 5),但程序在运

  • 问题内容: 如何使用排序集从Redis获取多个键的值? 这将有两个用户。 如何在一个查询中检索具有键“ David”和“ Linda”的用户? 问题答案: 无需在Redis中引入新命令的方法有多种。 例如,您可以使用感兴趣的名称填充临时集,然后计算该临时集与zset之间的交集: 使用流水线操作,只会产生一次往返,并且您可以在tmp中填充任意数量的输入参数。 使用Redis 2.6,您还可以将这些行

  • 问题内容: 我目前正在与Redis一起玩,我有几个问题。是否可以从键数组中获取值? 例: 当我返回时。我可以遍历此列表并获得用户:1,获得用户:2。但这感觉不对,有没有办法让所有与会者的信息一目了然? 在rails中,我会做这样的事情: 但是在redis中我不能,因为它返回键,而不是存储在该键上的实际对象。 谢谢 :) 问题答案: 在项目上循环并同步访问每个元素不是很有效。使用Redis 2.4,

  • 当前使用DynamoDBmapper和DynamoDBQueryExpression查询全局辅助索引、按排序索引排序并返回前n个结果的方法是什么? 关于在GSI上执行查询的当前正确方式的建议? 非常感谢!