# GEO

GE0就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GE0的支持,允许存储地理坐标信息,帮 助我们根据经纬度来检索数据。常见的命令有:

参数key:值(纬度、经度、名称)

# GEOADD

添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member),可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中

语法格式如下:

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

# 举例

  1. 添加一个上海T1航站楼国内出发
GEOADD jichang 121.809492 31.157398 t1hangzhanlouchufaceng
  1. 添加一个虹桥T1航站楼出发
GEOADD jichang 121.352878 31.199894 t1hongqiaohangzhanlouchufaceng
  1. 添加多个 t1停车场,出口
GEOADD jichang 121.354627 31.200106 t1hongqiaotingchechang 121.354045 31.197702 t1hangzhanlouchukou

# GEODIST

计算指定的两个点之间的距离并返回

语法格式如下:

最后一个距离单位参数说明:

  • m :米,默认单位。
  • km :千米。
  • mi :英里。
  • ft :英尺。
GEODIST key member1 member2 [m|km|ft|mi]

# 举例

  1. 计算t1航站楼出发层到虹桥t1出发层多少米
GEODIST jichang t1hangzhanlouchufaceng t1hongqiaohangzhanlouchufaceng

# GEOHASH

将指定member的坐标转为hash字符串形式并返回
用于获取一个或多个位置元素的 geohash 值。

语法格式如下:

GEOHASH key member [member ...]

# 举例

GEOHASH jichang t1hangzhanlouchufaceng t1hongqiaohangzhanlouchufaceng

# GEOPOS

用于从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。

语法格式如下:

GEOPOS key member [member ...]

# 举例

  1. 获取t1航站楼出发层
GEOPOS jichang t1hangzhanlouchufaceng

# GEORADIUS

指定圆心、半径,找到该圆内包含的所有member,并按照与圆心之间的距离排序后返回。6.2以后已废弃

georadiusbymember 和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素
但是 georadiusbymember 的中心点是由给定的位置元素决定的, 而不是使用经度和纬度来决定中心点。

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

# GEOSEARCH

在指定范围内搜索member,并按照与指定点之间的距离排序后返回。范围可以是圆形或矩形。6.2.新功能

# GEOSEARCHSTORE

与GEOSEARCH功能一致,不过可以把结果存储到一个指定的ky。6.2.新功能