• Redis数据类型–Geospatial 地理空间


    前言

    Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。

    命令

    1、geoadd

    1)格式

    geoadd< longitude> [longitude latitude member...]   添加地理位置(经度,纬度,名称)

    2)实例

    1. geoadd china:city 121.47 31.23 shanghai
    2. geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing
    注:

    两极无法直接添加,一般会下载城市数据,直接通过 Java 程序一次性导入。

    有效的经度从 -180 度到 180 度。有效的纬度从 -85.05112878 度到 85.05112878 度。

    当坐标位置超出指定范围时,该命令将会返回一个错误。

    已经添加的数据,是无法再次往里面添加的。

    2、geopos  

    1)格式

    geopos   [member...]  获得指定地区的坐标值

    2)实例

    1. 127.0.0.1:6379> geopos china:city shanghai
    2. 1) 1)"121.47000163793563843
    3. 2)"31.22999903975783553

    3、geodist

    1)格式

    geodist  [m|km|ft|mi ]  获取两个位置之间的直线距离

    2)实例

    获取两个位置之间的直线距离

    1. 127.0.0.1:6379> geodist china:city beijing shanghai km
    2. "1087.4816"
    单位:

    m 表示单位为米[默认值]。

    km 表示单位为千米。

    mi 表示单位为英里。

    ft 表示单位为英尺。

    如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位

    4、georadius

    1)格式

    georadius< longitude>radius  m|km|ft|mi   以给定的经纬度为中心,找出某一半径内的元素
    经度 纬度 距离 单位

    2)实例

    1. 127.0.0.1:6379> georadius china:city 110 30 1000 km
    2. 1"chongqing
    3. 2"shengzhen

  • 相关阅读:
    设置渐变边框色
    docker&kubernets篇(二十二)
    Linux 命令【10】:curl
    3.2、封装成帧
    【JavaScript总结】之数组
    chrome v3开发插件实现所有网站允许跨域
    软件测试工程师面试整理-常见面试问题
    vue使用vue-video-player插件播放视频
    开发者研究与洞察
    Win10如何用管理员身份运行Windows终端?
  • 原文地址:https://blog.csdn.net/qq_31536117/article/details/134505273