当前位置:   article > 正文

Redis命令介绍之Geo类型(地理空间)操作命令_redis geo type

redis geo type

在Redis中,在有序集合以及GeoHash的基础上实现了Geo类型表示地理空间信息。GeoHash是将经纬度进行编码,使二维信息变为一维信息的一种算法。下面我们就来介绍Redis中Geo类型相关的命令。

GEOADD

GEOADD命令用于向Geo类型中添加一个或多个坐标元素,并返回新添加元素个数。若元素已存在(以member参数指定的元素名称作为唯一性判断),则返回值将不包括该元素,但会更新其值。

GEOADD key longitude latitude member [longitude latitude member ...]
  • 1

在添加时,其经纬度必须符合以下条件:

  • -180 <= longitude <= 180
  • -85.05112878 <= latitude <= 85.05112878

示例

redis> GEOADD buildings 121.5056 0 ShanghaiTower
(integer) 1
redis> GEOPOS buildings ShanghaiTower
1) 1) "121.50559991598129272"
   2) "0.00000126736058093"
redis> GEOADD buildings 121.5056 31.2335 ShanghaiTower 121.4453 31.2235 JinganTemple
# ShanghaiTower已经存在,返回值将不包括它,但会更新其值
(integer) 1
redis> GEOPOS buildings ShanghaiTower
1) 1) "121.50559991598129272"
   2) "31.23349948967888423"
# 不合法的坐标值
redis> GEOADD buildings 1000 500 Unknown
(error) ERR invalid longitude,latitude pair 1000.000000,500.000000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

GEODIST

GEODIST命令用于获取两个由GEOADD添加的元素的距离,并表示为参数所指定的距离单位。当其中一个不存在或两个元素都不存在的情况下,将返回nil

GEODIST key member1 member2 [m|km|ft|mi]
  • 1

GEODIST命令可使用参数设置其距离的单位,允许的值为:

  • m: 米
  • km: 千米
  • ft: 英尺
  • mi: 英里

在未设置的情况下,默认使

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/561512
推荐阅读
相关标签
  

闽ICP备14008679号