Redis GEOHASH命令

返回有效的Geohash字符串,该字符串表示一个或多个元素在代表地理空间索引的排序集合值中的位置。

通常,Redis使用Geohash技术的变体表示元素的位置,其中位置是使用52位整数编码的。与标准编码相比有所不同,因为在编码和解码过程中使用的初始最小和最大坐标是不同的。但是,此命令以字符串形式返回标准的Geohash,如Wikipedia的文章中所述,并且与网站兼容。

Geohash字符串属性

该命令返回11个字符的Geohash字符串,因此与Redis内部52位表示形式相比,不会损失任何精度。返回的Geohashhes具有以下属性:

  1. 可以从右侧删除字符来缩短它们。它将失去精度,但仍将指向同一区域。
  2. 可以在的URL中使用它们。例如http://geohash.org/<geohash-string>
  3. 前缀相似的字符串在附近,但反过来并不成立,前缀不同的字符串也可能在附近。

可用版本:从3.2.0开始可用
时间复杂度:O(log(N)),对于请求的每个元素,N为有序集中元素的数量。

命令格式

GEOHASH key member [member ...]

返回值

该命令返回一个数组,其中每个元素是与作为参数传递给命令的每个成员名称相对应的Geohash。

示例

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOHASH Sicily Palermo Catania
1) "sqc8b49rny0"
2) "sqdtr74hyu0"