Redis之GEO存储地理位置信息
在外卖软件中的附近的美食店铺、外卖小哥的距离,打车软件附近的车辆,交友软件中附近的小姐姐。我们都可以利用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存储地理位置信息相关推荐
- Geo Location 地理位置信息小结
周末调研了一下Geo Location 地理位置信息方面的内容,自己小结一下. 一.通过 IP 地址获得用户的地理位置信息 也就是根据用户的IP,通过IP数据库查询获得信息.一般IP数据库中, 每条记 ...
- Redis使用Geo存储经纬度
目录 Geo原理简单介绍 Geo常用方法讲解: add方法:添加地理位置坐标 pos方法:给定的 key 里返回所有指定名称(member)的位置(经度和纬度) radius方法:根据给定的位置名称来 ...
- redis:地理位置信息geo
简介 redis3.2版本提供了GEO(地理信息定位)功能,支持存储地理位置信息. 可以用来实现比如附近位置,摇一摇这类依附于地理位置的功能 GEO功能是 Redis 的另一位作者Matt Stanc ...
- Redis GEO地理位置信息的应用
Redis GEO地理位置信息的应用 Redis GEO 概述 应用场景 Redis GEO命令 GEO命令演示 Redis GEO实现附近人的功能 基础类 API接口 接口实现 执行测试 Redis ...
- java redis geo_Redis GEO
Redis GEO Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增. Redis GEO 操作方法有: geoadd:添加地理位置的坐标. ...
- Flask项目实战——7—(Redis数据库存储验证码信息、验证登录界面的表单信息、注册功能实现、登录实现)
推荐一个API平台:聚合数据 1.Redis数据库存储验证码信息 保存手机验证码到Redis数据库 公有视图文件:apps/common/views.py # -*- encoding: utf-8 ...
- Redis 存储对象信息是用 Hash 还是 String
Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(St ...
- 【案例实战】SpringBoot整合Redis的GEO实现查找附近门店功能
像我们平常美团点外卖的时候,都会看到一个商家距离我们多少米.还有类似QQ附近的人,我们能看到附近的人距离我们有多少米. 那么这些业务是怎么做的呢?是如何实现 基于位置的附近服务系统呢. 在去了解基于位 ...
- Geohash的原理介绍、Redis的Geo命令总结、Python使用Redis的Geo模块
Geohash 一.GeoHash编码介绍 参考: https://hogwartsrico.github.io/2015/01/22/About-GeoHash/ Geohash原理 - 简书 (j ...
最新文章
- tomcat如何增大并发_系统的性能瓶颈,排查该从哪些方面入手,如何定位?
- python【蓝桥杯vip练习题库】BASIC-10十进制转十六进制
- 2012.3.17庆祝我的博客创建!名字是web-sheena
- 微信支付退款结果通知解密 base64_decode / md5 / AES
- 【Tools】Linux远程拷贝工具(WinSCP)
- hadoop的web ui的8088端口打不开一例
- 陌屿授权系统V2.0全解
- python lxml解析html,当使用lxml.html解析html时,等同于InnerHTML
- python判断当前时间是否在两个时间之间_Python 判断时间是否在时间区间内的实例...
- TINYBERT: DISTILLING BERT FOR NATURAL LANGUAGE UNDERSTANDING
- python框架优化方法_Python 遗传算法框架 GAFT 优化小记
- SQL Server-【知识与实战VIII】触发器(中)
- 如何使用 Mac 中的“信息”?
- Java HotSpot VM参数大全
- 公众号订阅号如何赚钱
- 微信公众号开发模式没有域名怎么办?申请免费域名
- 【机器学习】iris莺尾花项目-机器学习的hello world
- Sdm660--OpenCamera流程详细分析(Camera1+Hal1)
- Tensorflow物体检测(Object Detection)
- Oracle选择填空题中英文,oracle中英文分开排序