首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis 学习(15)-- GEO

redis 学习(15)-- GEO

作者头像
希希里之海
发布2019-06-03 08:37:16
4300
发布2019-06-03 08:37:16
举报
文章被收录于专栏:weixuqin 的专栏weixuqin 的专栏

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"
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GEO
  • GEO 简介
  • GEO 相关命令
    • 1.geoadd key longitude latitude member [lon lat member...]
      • 2.geopos key member1 [member2...]
        • 3.geodist key member1 member2 [unit]
          • 4.georadius key longitude latitude unit [withcoord] [withdist] [withhash] [COUNT count] [sort] [store key] [storedist key]
            • 5.georadiusbymember key member radius unit [withcoord][withdist][withhash][COUNT count][sort][store key][storedist key]
            • 演示
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档