赞
踩
在Redis中,在有序集合以及GeoHash的基础上实现了Geo类型表示地理空间信息。GeoHash是将经纬度进行编码,使二维信息变为一维信息的一种算法。下面我们就来介绍Redis中Geo类型相关的命令。
GEOADD
命令用于向Geo类型中添加一个或多个坐标元素,并返回新添加元素个数。若元素已存在(以member
参数指定的元素名称作为唯一性判断),则返回值将不包括该元素,但会更新其值。
GEOADD key longitude latitude member [longitude latitude member ...]
在添加时,其经纬度必须符合以下条件:
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
GEODIST
命令用于获取两个由GEOADD
添加的元素的距离,并表示为参数所指定的距离单位。当其中一个不存在或两个元素都不存在的情况下,将返回nil
。
GEODIST key member1 member2 [m|km|ft|mi]
GEODIST
命令可使用参数设置其距离的单位,允许的值为:
m
: 米km
: 千米ft
: 英尺mi
: 英里在未设置的情况下,默认使
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。