使用 georadius 根据距离限制查询用户 ID

Query user id by limit based on distance using georadius

Whosebug 社区,

我正在开发一个 Flink java 应用程序来查询用户之间的距离。我正在使用生菜框架来查询给定的用户 ID

GEORADIUS <location> <lat> <lon> <radius> <unit>.

条件 -> 现在假设给定参数内有数百万个用户 ID。

问题 -> 使用 lettuce 框架查询用户 ID 而不是在单个查询中查询一百万用户的最佳方法是什么?

我知道排序集有 limit,通过它我们可以无缝地跟踪最后一个偏移量并从该点继续查询。然而,geo API 提供 count 仅提供前 n 个用户 ID。我们可以使用 georadius 命令做类似的事情吗?

或者有没有更好的方法来解决这个问题,我们可以在给定的半径范围内查询 userID 而不会重复结果? 我知道我们可以缩短距离,但是有没有办法在 r1 和 r2 之间设置增量?

您可以使用 STORESTOREDIST 选项调用 GEORADIUS 命令以将结果保存到排序集中。然后就可以使用ZRANGE命令迭代结果了。