zoukankan      html  css  js  c++  java
  • redis 学习(15)-- GEO

    GEO

    GEO 简介

    • Redis 3.2添加新特性
    • 功能:存储经纬度、计算两地距离、范围计算等
    • 基于ZSet实现
    • 删除操作使用 zrem key member

    GEO 相关命令

    1.geoadd key longitude latitude member [lon lat member...]
    • 含义:增加地理位置信息
      • longitude :经度
      • latitude : 纬度
      • member : 标识信息
    2.geopos key member1 [member2...]
    • 含义:获取地理位置信息
    3.geodist key member1 member2 [unit]
    • 含义:获取两个地理位置的距离
    • unit取值范围
      • m(米,默认)
      • km(千米)
      • mi(英里)
      • ft(英尺)
    4.georadius key longitude latitude unit [withcoord] [withdist] [withhash] [COUNT count] [sort] [store key] [storedist key]
    • 含义:以给定的经纬度为中心,返回包含的位置元素当中,与中心距离不超过给定最大距离的所有位置元素。
    • unit取值范围
      • m(米)
      • km(千米)
      • mi(英里)
      • ft(英尺)
    • withcoord:将位置元素的经度与纬度也一并返回
    • withdist:在返回位置元素的同时,将距离也一并返回。距离的单位和用户给定的范围单位保持一致
    • withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。
    • sort取值范围
      • asc:根据中心位置,按照从近到远的方式返回位置元素
      • desc:根据中心位置,按照从远到近的方式返回位置元素
    • store key:将返回结果而的地理位置信息保存到指定键
    • storedist key:将返回结果距离中心节点的距离保存到指定键
    5.georadiusbymember key member radius unit [withcoord][withdist][withhash][COUNT count][sort][store key][storedist key]
    • 含义:以给定的元素为中心,返回包含的位置元素当中,与中心距离不超过给定最大距离的所有位置元素。
    • unit取值范围
      • m(米)
      • km(千米)
      • mi(英里)
      • ft(英尺)
    • withcoord:将位置元素的经度与纬度也一并返回
    • withdist:在返回位置元素的同时,将距离也一并返回。距离的单位和用户给定的范围单位保持一致
    • withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。
    • sort取值范围
      • asc:根据中心位置,按照从近到远的方式返回位置元素
      • desc:根据中心位置,按照从远到近的方式返回位置元素
    • store key:将返回结果而的地理位置信息保存到指定键
    • storedist key:将返回结果距离中心节点的距离保存到指定键

    演示

    由于我的 redis 版本是 3.0.7,geo 功能是在 redis-3.2 后引入的,所以这里我直接贴出演示命令,就不在重装 redis 了。

    127.0.0.1:6381> geoadd cities:locations 116.28 39.55 beijing
    (integer) 1
    127.0.0.1:6381> geoadd cities:locations 117.12 39.08 tianjin 114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding
    (integer) 4
    127.0.0.1:6381> geopos cities:locations tianjin
    1) 1) "117.12000042200088501"
       2) "39.0800000535766543"
    127.0.0.1:6381> geodist cities:locations tianjin beijing km
    "89.2061"
    127.0.0.1:6379> georadiusbymember cities:locations beijing 150 km
    1) "beijing"
    2) "tianjin"
    3) "tangshan"
    4) "baoding"
    
  • 相关阅读:
    第一天站立会议
    Sprint会议计划
    软件需求分析
    团队介绍
    再写行转列和列转行
    二十三种设计模式之:组合(Composite)模式(部分·整体模式)
    对于类和对象的认识
    对排序的认识
    设计模式分类
    二十三种设计模式之:适配器模式
  • 原文地址:https://www.cnblogs.com/weixuqin/p/10964823.html
Copyright © 2011-2022 走看看