Redis(三)——高级用法(GEO地理位置信息)
一、GEO
1.介绍
GEO(地理信息定位):存储经纬度,计算两地距离,范围等
天津:117.12,39.08
可以计算天津到北京的距离,天津周围50km的城市,外卖等
2.5个城市纬度
经度 | 纬度 | 简称 | |
---|---|---|---|
北京 | 116.28 | 39.55 | beijing |
天津 | 117.12 | 39.08 | tianjin |
石家庄 | 114.29 | 38.02 | shijiazhuang |
唐山 | 118.01 | 39.38 | tangshan |
保定 | 115.29 | 38.51 | baoding |
3.相关命令
geoadd key longitude latitude member #增加地理位置信息,设置经度 纬度 geoadd cities:locations 116.28 39.55 beijing #把北京地理信息天津到cities:locations中 geoadd cities:locations 117.12 39.08 tianjin geoadd cities:locations 114.29 38.02 shijiazhuang geoadd cities:locations 118.01 39.38 tangshan geoadd cities:locations 115.29 38.51 baoding geopos key member #获取地理位置信息 geopos cities:locations beijing #获取北京地理信息 geodist key member1 member2 [unit]#获取两个地理位置的直线距离 unit:m(米) km(千米) mi(英里) ft(尺) geodist cities:locations beijing tianjin km #北京到天津的距离,89公里 georadius key logitude latitude radiusm|km|ft|mi [withcoord] [withdist] [withhash] [COUNT count] [asc|desc] [store key][storedist key] georadiusbymember 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:将返回结果距离中心点的距离保存到指定键 ''' georadiusbymember cities:locations beijing 150 km #获取距离北京150km范围内的地方 ''' 1) "beijing" 2) "tianjin" 3) "tangshan" 4) "baoding" '''
4.总结
geo本质时zset类型
可以使用zset的删除,删除指定member:zrem cities:locations beijing