增加地理位置信息 geoadd key longitude latitude member [longitude latitude member ...] longitude、 latitude、 member分别是该地理位置的经度、 纬度、 成员 示例:geoadd cities:locations 116.28 39.55 beijing 获取地理位置信息 geopos key member [member ...] 示例: geopos cities:locations tianjin 获取两个地理位置的距离 geodist key member1 member2 [unit] 其中unit代表返回结果的单位, 包含以下四种: ·m(meters) 代表米。 ·km(kilometers) 代表公里。 ·mi(miles) 代表英里。 ·ft( feet) 代表尺。 示例:计算天津到北京的距离, 并以公里为单位 geodist cities:locations tianjin beijing km 获取指定位置范围内的地理信息位置集合 georadius key longitude 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] georadius和georadiusbymember两个命令的作用是一样的, 都是以一个地理位置为中心算出指定半径内的其他地理信息位置, 不同的是georadius命令的中心位置给出了具体的经纬度, georadiusbymember只需给出成员即可。 其中radiusm|km|ft|mi是必需参数, 指定了半径( 带单位) , 这两个命令有很多可选参数, 如下所示: ·withcoord: 返回结果中包含经纬度。 ·withdist: 返回结果中包含离中心节点位置的距离。 ·withhash: 返回结果中包含geohash, 有关geohash后面介绍。 ·COUNT count: 指定返回结果的数量。 ·asc|desc: 返回结果按照离中心节点的距离做升序或者降序。 ·store key: 将返回结果的地理位置信息保存到指定键。 241·storedist key: 将返回结果离中心节点的距离保存到指定键。 示例:计算五座城市中, 距离北京150公里以内的城市 georadiusbymember cities:locations beijing 150 km 获取geohash geohash key member [member ...] Redis使用geohash[3]将二维经纬度转换为一维字符串, 下面操作会返回beijing的geohash值。 > geohash cities:locations beijing 1) "wx4ww02w070" geohash有如下特点: ·GEO的数据类型为zset, Redis将所有地理位置信息的geohash存放在zset中。 ·字符串越长, 表示的位置更精确。 ·两个字符串越相似, 它们之间的距离越近, Redis利用字符串前缀匹配算法实现相关的命令。 ·geohash编码和经纬度是可以相互转换的。 删除地理位置信息 zrem key member 注:GEO没有提供删除成员的命令, 但是因为GEO的底层实现是zset, 所以 可以借用zrem命令实现对地理位置信息的删除。
geohash精度与长度对应关系