Redis是否具有“ N个地理位置最接近”的功能?

时间:2019-03-05 05:35:58

标签: redis geospatial

我一直在使用GEORADIUS及其功能套件,但是我很好奇是否可以通过Z排序的GEORADIUS密钥来获取100个最接近的成员。

例如,...我不知道在地理上与已知成员接近的成员有多少,因此我不知道要获得100个最接近的成员,GEORADIUS要使用多大的半径。< / p>

我该怎么做?

2 个答案:

答案 0 :(得分:1)

Redis对GEO的支持有限。没有这样的命令,您需要在客户端执行此操作:

  1. 使用1米作为半径来检查是否有足够的物品。
  2. 如果有足够的项目,请从结果中获取最接近的N个项目。
  3. 如果没有足够的物品,请将半径加倍,然后转到步骤1。

但是,在客户端执行此操作不是很有效。我正在编写Redis模块以在服务器端执行复杂的GEO工作。如果已准备好生产,我会告诉您:)

答案 1 :(得分:1)

JaguarDB对地理空间数据(2D和3D)具有非常强大的支持。它使您可以在每个点位置存储多个测量值,而其他数据库仅支持一个测量值(pointm)。还支持许多复杂的查询,例如KNN,Voronoi多边形,凸壳。它是开源的。 KNN k最近邻居查询可以为您提供帮助。除了线形多边形之类的栅格形状外,它还支持矢量形状。