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


相关推荐

  • ffmpeg源码编译_开源代码平台

    ffmpeg源码编译_开源代码平台 注:本文来转自http://www.aurora-x.net/wiki/CompileFFmpegWindows,前段时间用ffempg和x264开发了h264编码和解码的Filter,这篇文章是我编译ffmeg工程从网上搜到的最好的一份文档,及其详尽,我就是按照这个文档的一步一步地来做,第一次就顺利地完成了ffmepg的编译。如果你也在学习ffmpeg,来仔细学习一下这份文档吧,以后

    2022年9月25日
    2
  • Tomcat报错—Invalid keystore format ,tomcat启动报错[通俗易懂]

    今天在修改了一些代码,然后重新放到服务器上,启动服务器的时候报这个错误!我就很纳闷,修改的文件里面根本就没有涉及到tomcat配置文件的内容怎么会出现这样子内容呢?想了很久也网上百度了很多,很多博客提供的解答都没有解决我的问题,然后我们主管过来看了一会,给出了指导性的建议,去看tomcat下的conf/server.xml 文件。然后逐步排查。

    2022年2月24日
    82
  • h5 实现图片上传 案例

    h5 实现图片上传 案例如何在 h5 中实现图片上传 单图片上传 先写一个按钮 通过点击按钮触发文件上传的 onclick 事件 divclass btn onclick takePhone 请点击进行拍照 inputtype file name file id upload capture camera onchange uploadImg accept image value inputtype file name file id upload capture camera onchange uploadImg accept image divclass btn onclick takePhone

    2025年6月25日
    5
  • 学习笔记 python取余[通俗易懂]

    学习笔记 python取余[通俗易懂]python中的取余运算其实就是取模运算,所谓取模运算,就是计算两个数相除之后的余数,符号是%。如a%b就是计算a除以b的余数。用数学语言来描述,就是如果存在整数n,其中0<=|m|<|b|使得a=n*b+m,那么a%b=a‐n*b=m其中n=a/b,然后对n进行向下取整,最后得到n取模运算的两个操作数都必须是整数,可以是负整数,但是b不可以是0,因为被除数不能为0假设变量:a=10,b=20;那么b%a输出结果0…

    2022年4月25日
    63
  • 8. 强化学习之——模仿学习

    8. 强化学习之——模仿学习课程大纲注:本文所有内容源自于B站周博磊老师更新完的强化学习纲要课程,听完之后获益很多,本文也是分享我的听课笔记。周老师Bilibili视频个人主页:https://space.bilibili.com/511221970?spm_id_from=333.788.b_765f7570696e666f.2感谢周老师:)…

    2022年9月18日
    5
  • 5款最强且免费的Python IDE

    5款最强且免费的Python IDE在一些问答平台,经常会遇到一类关于Python的问题:

    “学习Python,应该选择哪款开发工具?”

    2022年7月3日
    24

发表回复

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

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