介绍Redis3.2中增加了对GEO类型的支持。GEO(Geographic)地理信息的缩写。该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型提供了经纬度设置、查询、范围查询、距离查询、经纬度Hash等常见操作。命令geoaddGEOADDkey[NX|XX][CH]long
介绍
Redis 3.2 中增加了对GEO类型的支持。GEO(Geographic)地理信息的缩写。该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型提供了经纬度设置、查询、范围查询、距离查询、经纬度Hash等常见操作。
命令
geoadd
GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]
添加经纬度
- NX:仅添加元素,不做更新
- XX:仅更新已存在元素,不能添加元素
- CH:从添加的新元素的数量修改返回值,更改的元素总数(CH是更改的缩写)。更改的元素是添加的新元素,并且已更新坐标的元素已存在。所以在命令行中指定的元素,没有计数与他们过去的分数相同。注意:通常,GEOADD的返回值仅计算添加的新元素数。
注意:XX和NX选项互斥。
示例:
geoadd china:city 121.47 31.23 shanghai
geoadd china:city 116.38 39.90 beijing
两极无法直接添加,一般会下载城市数据,直接通过程序一次性导入。
- 经度:[-180, 180]
- 维度:[-85.05112878, 85.05112878]
当坐标位置超出指定范围时,该命令会返回一个错误。
geopos
GEOPOS key member [member ...]
返回指定地区的坐标
示例:
geopos china:city shanghai
geodist
GEODIST key member1 member2 [m|km|ft|mi]
返回两个地理位置之间的距离,默认单位为m。
- m:表示单位米
- km:表示单位千米
- ft:表示单位英尺
- mi:表示单位英里
示例:
geodist china:city beijing shanghai
geodist china:city beijing shanghai km
georadius
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
以给定的经纬度为中心,找出某一半径内的元素。
单位:
- m:米,默认值
- km:千米
- ft:英尺
- mi:英里
- WITHCOORD:将位置元素的经度和纬度也一并返回。
- WITHDIST:在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。
- WITHHASH:以 52bit有符号整数的形式, 返回位置元素经过原始 GEOHASH编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
- COUNT:限制返回的数据量
- ASC:按距离大小,升序排列
- DESC:按距离大小,降序排列
- STORE:将项目存储在与其地理空间信息填充的排序组中
- STOREDIST:将地理空间信息存储在填充的排序组中,填充其距离中心的距离为浮点数,在半径指定的同一单元中。
示例:
georadius china:city 110 30 1000 km
geohash
GEOHASH key member [member ...]
以标准geohash字符串的形式返回地理位置的坐标。
示例:
geohash china:city shanghai
创业项目群,学习操作 18个小项目,添加 微信:niuben22 备注:小项目!
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.35chat.cn/50543.html
如若转载,请注明出处:https://www.35chat.cn/50543.html