Redis-GEO

Redis-GEO

一. Redis的GEO特性

Redis3.2版本提供了GEO功能,支持存储地理位置信息用来实现诸如摇一摇,附近位置这类依赖于地理位置信息的功能。
二. 命令
2.1 增加地理位置信息

命令:geoadd key longitude latitude member[longitude latitude member…]

例如:geoadd cities:locations 116.28 39.55 beijing 117.12 39.08 tianjin114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding

返回:4
2.2 获取地理位置信息

命令:geopos key member[member…]

例如:geopos cities:locations tianjin beijing

返回:

1) 1) “117.12000042200088501”

   2) “39.0800000535766543”

2) 1) “116.28000229597091675”

   2) “39.5500007245470826”
2.3 获取两个地理位置的距离

命令:geodist key member1 member2 [unit]

选项:unit:单位,默认为m(米)

     m:米

     km:千米

     mi:英里

     ft:尺

例如:

10.3.34.101:6378> geodistcities:locations beijing tianjin

“89206.0576”

10.3.34.101:6378> geodistcities:locations beijing tianjin km

“89.2061”

10.3.34.101:6378> geodistcities:locations beijing tianjin m

“89206.0576”

10.3.34.101:6378> geodist cities:locationsbeijing tianjin mi

“55.4302”

10.3.34.101:6378> geodistcities:locations beijing tianjin ft

“292670.7926”

 
2.4 获取指定位置范围内的地理信息位置集合

(1)中心为坐标

georadius key longtitude latitude radiumm|km|mi|ft [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedistkey]

(2)中心为成员

georadius key member radium m|km|mi|ft [withcoord][withdist][withhash][COUNTcount][asc|desc][store key][storedist key]

选项:

withcoord:返回结果中包含经纬度

withdist:返回结果中包含离中心节点位置的距离

withhash:返回结果中包含geohash

Count count:返回结果的数量

asc|desc:按照离中心节点的距离做升序或者降序

store key:将返回结果的地理位置信息保存在指定键中

stroedist key:将返回结果离中心点的距离保存在指定键中

例如:

10.3.34.101:6378> georadiusbymembercities:locations beijing 150 km

1) “beijing”

2) “tianjin”

3) “tangshan”

4) “baoding”

10.3.34.101:6378> georadiusbymembercities:locations beijing 15 km

 
2.5 获取geohash

geohash将二维经纬度转换为一维字符串,字符串越长,精度越高,当长度为9时,精度在2米左右。

Geohash长度
    

精度

1
    

2500

2
    

630

3
    

78

4
    

20

5
    

2.4

6
    

0.61

7
    

0.076

8
    

0.019

9
    

0.002

 

命令:geohash key member[member…]

例如:geohash cities:locations beijing

1)      “wx48ypbe2q0”
2.6 删除地理位置信息

GEO没有删除成员的命令,但是因为GEO的底层实现是zset,所以可以借用zrem命令实现对地理位置信息的删除。

命令:zrem key member
———————
作者:大道化简
来源:CSDN
原文:https://blog.csdn.net/sunhuiliang85/article/details/75020341
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112673.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月3日 下午2:00
下一篇 2021年11月3日 下午3:00


相关推荐

  • 国外最流行的Bootstrap后台管理模板

    国外最流行的Bootstrap后台管理模板工欲善其事,必先利其器对于从事软件开发的您也一样,有一套熟悉的bootstrap后台ui框架让您的开发速度大幅度提升这是本人经常使用到的一些bootstrap后台框架推荐给大家第一名inspiniabootstrap演示地址http://cn.inspinia.cn效果图http://cn.inspinia.cnhttp://cn.inspinia.cn第二名…

    2022年4月25日
    40
  • 博客数据库被删,丢失部分数据!

    博客数据库被删,丢失部分数据!

    2021年8月11日
    52
  • GBDT算法原理_boosting算法

    GBDT算法原理_boosting算法本文对GBDT算法原理进行介绍,从机器学习的关键元素出发,一步一步推导出GBDT算法背后的理论基础,读者可以从这个过程中了解到GBDT算法的来龙去脉。对于该算法的工程实现,本文也有较好的指导意义,实际上对机器学习关键概念元素的区分对应了软件工程中的“开放封闭原则”的思想,基于此思想的实现将会具有很好的模块独立性和扩展性。

    2022年10月12日
    6
  • 华为交换机access、trunk、hybrid口区别理解

    华为交换机access、trunk、hybrid口区别理解一 个人理解部分 1 Access 口 仅可以属于某一个 Vlan 所以可以连客户端 且客户端只能属于端口的 VLAN 2 Trunk 口 可以属于多个 VLAN 且默认 VLAN 的数据帧会发出会去掉 VLAN 标签 其他的 VLAN 发送不去除 VLAN 标签 所以只有默认 VLAN 的端口可以连客户端 3 Hybrid 口 可以属于多个 VLAN 可以让属于多个 VLAN 的端口为数据帧打上指定的 VLAN 标签或去掉某

    2026年3月16日
    2
  • 基于FCM算法的聚类算法

    基于FCM算法的聚类算法文章目录一 模糊聚类分析二 案例背景 1 问题描述 2 模糊 C 均值聚类算法 FCM 三 MATLAB 程序实现 1 初始化 2 更新聚类中心 目标函数值 隶属度矩阵 3 程序源码 4 结果分析四 参考文献一 模糊聚类分析模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一 随着研究范围的拓展 不管是科学研究还是实际应用 都对聚类的结果从多方面提出了更高的要求 模糊 C 均值聚类 FCM 是目前比较流行的一种聚类方法 该方法使用了在欧几里得空间确定数据点的几何贴近度的概念 它将这些数据分配到不同的聚类 然

    2026年3月17日
    1
  • 手机实名制果真成了空头口号

    手机实名制果真成了空头口号

    2021年8月8日
    206

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号