使用 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 之间设置增量?
您可以使用 STORE
或 STOREDIST
选项调用 GEORADIUS
命令以将结果保存到排序集中。然后就可以使用ZRANGE
命令迭代结果了。
Whosebug 社区,
我正在开发一个 Flink java 应用程序来查询用户之间的距离。我正在使用生菜框架来查询给定的用户 ID
GEORADIUS <location> <lat> <lon> <radius> <unit>.
条件 -> 现在假设给定参数内有数百万个用户 ID。
问题 -> 使用 lettuce 框架查询用户 ID 而不是在单个查询中查询一百万用户的最佳方法是什么?
我知道排序集有 limit
,通过它我们可以无缝地跟踪最后一个偏移量并从该点继续查询。然而,geo API 提供 count
仅提供前 n 个用户 ID。我们可以使用 georadius 命令做类似的事情吗?
或者有没有更好的方法来解决这个问题,我们可以在给定的半径范围内查询 userID 而不会重复结果? 我知道我们可以缩短距离,但是有没有办法在 r1 和 r2 之间设置增量?
您可以使用 STORE
或 STOREDIST
选项调用 GEORADIUS
命令以将结果保存到排序集中。然后就可以使用ZRANGE
命令迭代结果了。