用途
Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。
geoadd
GEOADD key longitude latitude member [longitude latitude member ...]
geoadd 用于存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。
返回结果
添加的条数
127.0.0.1:6379> GEOADD geo1 108.953364 34.276423 xian 109.502912 36.648447 yanan 107.25837 34.35628 baoji(integer) 3
geopos
GEOPOS key member [member ...]
geopos 用于从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。
127.0.0.1:6379> geopos geo1 xian1) 1) "108.9533659815788269"2) "34.27642210258066058"127.0.0.1:6379> geopos geo1 baoji1) 1) "107.25837081670761108"2) "34.35628102742678891"127.0.0.1:6379> geopos geo1 weinan1) (nil)
geodist
GEODIST key member1 member2 [m|km|ft|mi]
geodist 用于返回两个给定位置之间的距离。
member1 member2 为两个地理位置。
最后一个距离单位参数说明:
- m :米,默认单位。
 - km :千米。
 - mi :英里。
 - ft :英尺。
 
返回结果
距离
127.0.0.1:6379> geodist geo1 xian yanan m"268486.0792"127.0.0.1:6379> geodist geo1 xian yanan km"268.4861"
georadius、georadiusbymember
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
georadius 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。
georadiusbymember 和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 georadiusbymember 的中心点是由给定的位置元素决定的, 而不是使用经度和纬度来决定中心点。
参数说明:
- m :米,默认单位。
 - km :千米。
 - mi :英里。
 - ft :英尺。
 - WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。
 - WITHCOORD: 将位置元素的经度和维度也一并返回。
 - WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
 - COUNT 限定返回的记录数。
 - ASC: 查找结果根据距离从近到远排序。
 - DESC: 查找结果根据从远到近排序。
127.0.0.1:6379> GEORADIUS geo1 108.9533659815788269 34.27642210258066058 200 km WITHCOORD WITHCOORD DESC1) 1) "baoji"2) 1) "107.25837081670761108"2) "34.35628102742678891"2) 1) "xian"2) 1) "108.9533659815788269"2) "34.27642210258066058"127.0.0.1:6379> GEORADIUS geo1 108.9533659815788269 34.27642210258066058 200 km WITHCOORD WITHCOORD ASC1) 1) "xian"2) 1) "108.9533659815788269"2) "34.27642210258066058"2) 1) "baoji"2) 1) "107.25837081670761108"2) "34.35628102742678891"127.0.0.1:6379>127.0.0.1:6379> GEORADIUSBYMEMBER geo1 xian 200 km1) "baoji"2) "xian"
geohash
geohash 用于获取一个或多个位置元素的 geohash 值。GEOHASH key member [member ...]
 
返回结果
hash值
127.0.0.1:6379> GEOHASH geo1 xian yanan1) "wqj6zrc6tk0"2) "wqtb7z9sdv0"
