redis GEO 结构 坐标计算
redis geo数据结构可以用来做坐标计算,其底层结构是 sort_set
语法规则:
geoadd key longitude latitude member [longitude latitude member …]
member通常用某个具体的地点来表示,如现在要设置北京西站和北京南站两个地点的经纬度,语句如下:
127.0.0.1:6379> GEOADD bj 116.321275 39.895096 bjxz 116.378438 39.864666 bjnz
1) "bjxz"
2) "bjnz"
计算北京西站与北京南站之间的距离,语法为:
geodist key member1 mwmber2 [m|km|ft|mi]
[]内为距离的单位
127.0.0.1:6379> GEODIST bj bjnz bjxz km
"5.9381"
表示北京南站与北京西站之间的距离是5.9381KM。注意这里的距离指的是直线距离。
如果你站在开阳桥(距北京南站很近,坐标为116.380922 39.876327 )边上,想看一下自己周围2KM都有什么,你可以这么做
127.0.0.1:6379> GEORADIUS bj 116.380922 39.876327 2 km
1) "bjnz"
这表示你周围2KM有个北京南站,这个功能通常用来做打车业务里查询周围车辆。
如果把距离放大点,改成6KM
127.0.0.1:6379> GEORADIUS bj 116.380922 39.876327 6 km
1) "bjnz"
2) "bjxz"
这时会发现北京西站 jbxz 也出现在了查询的结果集里
redis GEO 结构 坐标计算相关推荐
- 基于Redis GEO(地理位置) 实现附近的人,商家等相关功能实现 使用SpringBoot Redis工具类
Redis GEO 1.基本介绍 1.Redis GEO 2.基础语法 GEOADD GEOPOS GEODIST GEORADIUS GEOHASH 2.可用于实现的功能 3.SpringBoot实 ...
- PHP实现附近的人、按距离排序之Redis GEO方案
[写在前面] 获取附近的人列表,首先要有用户的位置信息,做法是客户端调用一个接口传递用户的经纬度坐标.所在区域adcode等,把这些用户位置信息入库(当然前提是用户开启定位权限). 有了用户位置信息库 ...
- Redis实战 - 11 Redis GEO 实现附近的人功能
各种社交软件里面都有附件的人的需求,在该应用中,我们查询附近1公里的食客,同时只需查询出20个即可. 文章目录 1. Redis GEO常用命令 2. 上传用户地理位置 1. RedisKeyCons ...
- Redis基础 -- 地理坐标类型 Redis GEO 和 Redis GEO的常用命令(含GEOHASH编码说明)
文章目录 1. 地理坐标类型 Redis GEO 1.1 GEOADD:存储坐标 1.2 GEOPOS:获取指定位置的坐标 1.3 GEODIST:计算两个位置之间的直线距离 1.4 GEORADIU ...
- Redis GEO详解
Redis GEO: redis GEO主要用于存储地理位置信息,并对存储的信息进行操作,该功能在Redis 3.2版本新增. redis GEO操作方法: geoadd:添加地理位置的坐标 geop ...
- [LBS学习笔记3]redis geo地理位置查询分析
1.redis geo命令 1.1 redis6.2版本geo命令简介 redis自3.2版本开始,提供了地理位置相关的命令: GEOADD:添加空间元素 GEOPOS: 获取某个地理位置的坐标 GE ...
- Java-使用Redis GEO测算经纬度距离
一.Redis GEO相关命令操作 GEO也是Redis中提供的一种数据类型,可以将其理解成ZSet有序集合类型 GEOADD GEOADD cars -115.17087 36.12306 my-c ...
- Redis GEO使用
Redis 3.2 版本提供了GEO(地理信息定位)功能,支持存储地理位置及计算地理位置间的距离.美团最近骑手/附近摇一摇/滴滴最近司机等同质功能都可以使用该功能实现. 一.GEO基础知识 2.1 什 ...
- Redis GEO地理位置信息的应用
Redis GEO地理位置信息的应用 Redis GEO 概述 应用场景 Redis GEO命令 GEO命令演示 Redis GEO实现附近人的功能 基础类 API接口 接口实现 执行测试 Redis ...
最新文章
- Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序
- SAP WM初阶之IM层面货物移动后WM层面自动完成TO创建和确认
- RhinoMock学习-绑定回调
- AcWing 199. 余数之和 (除法分块)打卡
- 将web项目导入到eclipse/MyEclipse中常见错误
- java uppercase方法_Java toUpperCase()方法及其示例
- “老师,弃了吧,做个别的……”“笑话,都到这个份上了,怎么能弃掉呢?”...
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(一)
- python 机器学习_基于 Python 语言的机器学习工具Sklearn
- python字符串出栈方法_Python 实现字符串反转的9种方法
- sql2008 评估期过期解决办法
- java版本的RtpStream
- phpcms上线步骤,无法生成缓存,页面空白原因
- 语音社交app源码中音频混音的实现步骤
- 新版gsp五个附录计算机培训,新版GSP附录5 ——验证管理
- 传染病模型SIS及相应的matlab代码
- HiveQL的基础操作全集
- mysql 多字段,多条件查找
- 如何用手机观看群晖ds218play上视频
- Android开发实用技巧之一:全局获取Context的技巧