问题描述
StackOverflow社区,
我正在研究Flink Java应用程序以查询用户之间的距离。我正在使用生菜框架来查询给定的用户ID
GEORADIUS <location> <lat> <lon> <radius> <unit>.
条件->现在,假设给定参数中有数百万个用户ID。
问题->使用生菜框架查询用户ID而不在单个查询中查询一百万个用户的最佳方法是什么?
我知道排序后的集合具有limit
,通过它们我们可以无缝跟踪最后的偏移量并从该点继续查询。但是,geo API提供的count
仅提供了前n个用户ID。我们可以使用georadius命令执行类似的操作吗?
还是有更好的方法来解决该问题,即我们可以查询userID而不在给定的半径范围内重复结果? 我知道我们可以减小距离,但是,有没有办法在r1和r2之间增加门三角洲?
解决方法
您可以使用GEORADIUS
或STORE
选项调用STOREDIST
命令,以将结果保存到排序集中。然后,您可以使用ZRANGE
命令来迭代结果。