假设我在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,则结果集应具有:
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值”。