在外卖软件中的附近的美食店铺、外卖小哥的距离,打车软件附近的车辆,交友软件中附近的小姐姐。我们都可以利用redis的GEO地理位置计算得出。

  • 1、Redis 的 Geo 是在 3.2 版本才有的

  • 2、使用 geohash 保存地理位置的坐标

  • 3、使用有序集合(zset)保存地理位置的集合

常用API

命令 描述
geoadd 增加某个地理位置的坐标
geopos 获取某个地理位置的坐标
geodist 获取某个地理位置的坐标
georadius 根据给定地理位置坐标获取指定范围内的地理位置集合
georadiusbymember 根据给定地理位置获取指定范围内的地理位置集合
geohash 获取某个地理位置的 geohash 值

geoadd

API:geo key longitude latitude member [longitude latitude member ..]

功能:增加地理位置信息

演示:

127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing
(integer) 1
127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing
(integer) 0
127.0.0.1:6379> geoadd cities:locations 117.12 39.08 tianjin
(integer) 1
127.0.0.1:6379> geoadd cities:locations 114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding
(integer) 3

geopos

API:geopos key member [member]

功能:增加地理位置信息

演示:

127.0.0.1:6379>  geopos cities:locations beijing
1) 1) "116.28000229597091675"2) "39.5500007245470826"
127.0.0.1:6379>  geopos cities:locations beijing tianjin
1) 1) "116.28000229597091675"2) "39.5500007245470826"
2) 1) "117.12000042200088501"2) "39.0800000535766543"

geodist

API:geodsit key member member1 member2

功能:获取两个地理位置的距离

#unit:m(米)、km(千米)、mi(英里)、ft(尺)

演示:

127.0.0.1:6379> geodist cities:locations beijing tianjin km
"89.2061"

georadiusbymember

API:georadiusbymember key member raidusm|km|ft|mi [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedist key]

功能:获取两个地理位置的距离

参数:

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

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

withhash:返回结果中包含geohash

COUNT count:指定返回结果的数量

asc|desc:返回结果按照距离中心节点距离做升序或者倒序排列

store key:将返回结果的地理位置信息保存到制定key

storedist key:将返回结果距离中心节点的距离保存到指定键

演示:

查询距离北京550千米以内的所有城市,并按距离升序排列

127.0.0.1:6379> georadiusbymember cities:locations beijing 550 km  withdist asc
1) 1) "beijing"2) "0.0000"
2) 1) "tianjin"2) "89.2061"
3) 1) "baoding"2) "143.8646"
4) 1) "tangshan"2) "149.7479"
5) 1) "shijiazhuang"2) "242.3263"

geohash

API:geopos key member [member]

功能:获取某个地方的哈希值

演示:

127.0.0.1:6379> geohash cities:locations beijing
1) "wx48ypbe2q0"

Redis之GEO存储地理位置信息相关推荐

  1. Geo Location 地理位置信息小结

    周末调研了一下Geo Location 地理位置信息方面的内容,自己小结一下. 一.通过 IP 地址获得用户的地理位置信息 也就是根据用户的IP,通过IP数据库查询获得信息.一般IP数据库中, 每条记 ...

  2. Redis使用Geo存储经纬度

    目录 Geo原理简单介绍 Geo常用方法讲解: add方法:添加地理位置坐标 pos方法:给定的 key 里返回所有指定名称(member)的位置(经度和纬度) radius方法:根据给定的位置名称来 ...

  3. redis:地理位置信息geo

    简介 redis3.2版本提供了GEO(地理信息定位)功能,支持存储地理位置信息. 可以用来实现比如附近位置,摇一摇这类依附于地理位置的功能 GEO功能是 Redis 的另一位作者Matt Stanc ...

  4. Redis GEO地理位置信息的应用

    Redis GEO地理位置信息的应用 Redis GEO 概述 应用场景 Redis GEO命令 GEO命令演示 Redis GEO实现附近人的功能 基础类 API接口 接口实现 执行测试 Redis ...

  5. java redis geo_Redis GEO

    Redis GEO Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增. Redis GEO 操作方法有: geoadd:添加地理位置的坐标. ...

  6. Flask项目实战——7—(Redis数据库存储验证码信息、验证登录界面的表单信息、注册功能实现、登录实现)

    推荐一个API平台:聚合数据 1.Redis数据库存储验证码信息 保存手机验证码到Redis数据库 公有视图文件:apps/common/views.py # -*- encoding: utf-8 ...

  7. Redis 存储对象信息是用 Hash 还是 String

    Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(St ...

  8. 【案例实战】SpringBoot整合Redis的GEO实现查找附近门店功能

    像我们平常美团点外卖的时候,都会看到一个商家距离我们多少米.还有类似QQ附近的人,我们能看到附近的人距离我们有多少米. 那么这些业务是怎么做的呢?是如何实现 基于位置的附近服务系统呢. 在去了解基于位 ...

  9. Geohash的原理介绍、Redis的Geo命令总结、Python使用Redis的Geo模块

    Geohash 一.GeoHash编码介绍 参考: https://hogwartsrico.github.io/2015/01/22/About-GeoHash/ Geohash原理 - 简书 (j ...

最新文章

  1. tomcat如何增大并发_系统的性能瓶颈,排查该从哪些方面入手,如何定位?
  2. python【蓝桥杯vip练习题库】BASIC-10十进制转十六进制
  3. 2012.3.17庆祝我的博客创建!名字是web-sheena
  4. 微信支付退款结果通知解密 base64_decode / md5 / AES
  5. 【Tools】Linux远程拷贝工具(WinSCP)
  6. hadoop的web ui的8088端口打不开一例
  7. 陌屿授权系统V2.0全解
  8. python lxml解析html,当使用lxml.html解析html时,等同于InnerHTML
  9. python判断当前时间是否在两个时间之间_Python 判断时间是否在时间区间内的实例...
  10. TINYBERT: DISTILLING BERT FOR NATURAL LANGUAGE UNDERSTANDING
  11. python框架优化方法_Python 遗传算法框架 GAFT 优化小记
  12. SQL Server-【知识与实战VIII】触发器(中)
  13. 如何使用 Mac 中的“信息”?
  14. Java HotSpot VM参数大全
  15. 公众号订阅号如何赚钱
  16. 微信公众号开发模式没有域名怎么办?申请免费域名
  17. 【机器学习】iris莺尾花项目-机器学习的hello world
  18. Sdm660--OpenCamera流程详细分析(Camera1+Hal1)
  19. Tensorflow物体检测(Object Detection)
  20. Oracle选择填空题中英文,oracle中英文分开排序

热门文章

  1. java练气期(1)----java高级(JDBC)
  2. X86汇编——输出三角形星星
  3. C++11获取double类型的最大最小值
  4. MySQL的版本以及版本号
  5. 【Python】Django生成API 文档
  6. 【PHP】安装 ssh2 模块
  7. 2021春季每日一题【week5 未完结】
  8. 1155 Heap Paths (30 分)【难度: 一般 / 知识点: 堆 堆的遍历】
  9. Xshell的安装和连接
  10. C#中String与Datetime