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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最流行的三大数据建模工具

    最流行的三大数据建模工具越来越多的业务,越来越多的信息化系统,让很多公司拥有了海量数据,但是分散的数据、隔离的系统,又形成了一个个数据孤岛。于是,为了利用好数据,各大公司纷纷建设了数据仓库,或者是最近升级为大数据平台之类的,但是,不同条线不同场景的数据又要如何整合到同一个仓库呢?数据模型就此应运而生,通过高度抽象的数据模型,整合各个源系统的数据,最终形成统一、规范、易用的数据仓库,进而提供包括数据集市、数据挖掘…

    2022年6月1日
    39
  • php的Allowed memory size of 134217728 bytes exhausted问题解决办法

    php的Allowed memory size of 134217728 bytes exhausted问题解决办法php的Allowed memory size of 134217728 bytes exhausted问题解决办法

    2022年4月24日
    49
  • a卡eth挖矿教程_a卡挖eth用什么内核

    a卡eth挖矿教程_a卡挖eth用什么内核  对于ETH挖矿来说,A卡无疑是最合适的选择,性价比高。如果你只想挖ETH,那选择A卡无疑是最明智的。但是,在使用A卡挖矿的过程中,往往会出现很多难以解决的问题,影响挖矿的效率。其中很大一部分原因是由于A卡本身的特性导致的。很多人在使用A卡挖ETH的过程中会出现这样一种情况:开始一段时间还是正常的运行,但是运行一段时间后就开始报错,导致无法正常挖矿。这是由于A卡具有自动更新的特性。所以在使用A卡…

    2022年10月16日
    3
  • siamfc++代码_c语言代码怎么理解

    siamfc++代码_c语言代码怎么理解文章目录前言一、论文翻译二、论文代码1.backbone网络前言记录自己阅读复现SiamFC的全过程,包括论文翻译,代码理解等一、论文翻译论文原文:链接:https://pan.baidu.com/s/1wvXra0Ji6L9IMVZikaUs9Q提取码:s7t3本文是Siam系列跟踪论文的开篇之作,兼容了速度与精度,引起跟踪社区极大的关注。论文中对一些细节描述分非常充分,适合精读本文。二、论文代码代码参考;https://github.com/HonglinChu/SiamTra.

    2022年9月30日
    2
  • 微信扫码登陆(1)—扫码登录流程讲解、获取授权登陆二维码

    微信扫码登陆(1)—扫码登录流程讲解、获取授权登陆二维码扫码登录流程讲解、获取授权登陆二维码具体流程可以看微信官网的扫码登录文档地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN其实官方文档已…

    2022年4月26日
    103
  • 微信 网页授权_微信解除其他app授权

    微信 网页授权_微信解除其他app授权一、背景近期实现微信招聘公众号的需求,需要在微信用户同意公众号授权后,获取到微信用户信息。这一步操作在前端无法完成,所以这里我们使用了C#WebApi项目,通过接口实现后台获取微信用户数据再重定向到前端页面。二、思路具体而言,微信网页授权流程分为四步:1、引导用户进入授权页面同意授权,获取code;2、通过code换取网页授权access_toke…

    2025年7月25日
    3

发表回复

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

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