GEO是redis3.2添加的一个特性。
用于计算地理位置信息相关的一些功能。
GEO可以用于存储经纬度、计算两地之间的距离、范围计算等。
GEO其实是使用zset来实现的。
比如在删除的时候可以使用zset的相关命令
zram key member
命令
geoadd key longitude latitude member 添加地理位置信息
node1:0>geoadd cities:locations 116.28 node1:0>39.55 beijing
"1"
node1:0>geoadd cities:locations 117.12 39.08 tianjin
"1"
node1:0>geoadd cities:locations 114.29 38.02 shijiazhuang 118.01 39.38 tangshan
"2"
node1:0>geoadd cities:locations 115.29 38.51 baoding
"1"
geopos key member [member...] 获取地理位置信息
geodist key member1 member2 [unit] 获取两个地理位置的距离 unit:m米 km千米 mi英里 ft尺
georadius key longitude latitude radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key] [storedist key]
georadius key member radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key] [storedist key]
获取指定范围内的地理位置信息集合
withcoord:返回结果中包含经纬度
withdist:返回结果中包含距离中心节点位置
withhash:返回结果中包含geohash
COUNT count:指定返回结果的数量
asc|desc : 返回结果按照距离中心节点的距离做升序或者降序
store key :将返回结果的地理位置信息保存到指定键中
storedist key:将返回结果距离中心节点的距离保存到指定键
例子cities:locations中距离beijing 150km内的城市