zoukankan      html  css  js  c++  java
  • Redis之GEO

    增加地理位置信息
    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精度与长度对应关系

  • 相关阅读:
    mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
    java中使用正则表达式
    Timer与ScheduledThreadPoolExecutor的比较
    Java同步块
    java中的浅拷贝与深拷贝
    java的关闭钩子(Shutdown Hook)
    JVM系列三:JVM参数设置、分析
    java虚拟机参数设置
    UTF-8编码规则(转)
    过滤3个字节以上的utf-8字符
  • 原文地址:https://www.cnblogs.com/MacoLee/p/14066725.html
Copyright © 2011-2022 走看看