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 结构 坐标计算相关推荐

  1. 基于Redis GEO(地理位置) 实现附近的人,商家等相关功能实现 使用SpringBoot Redis工具类

    Redis GEO 1.基本介绍 1.Redis GEO 2.基础语法 GEOADD GEOPOS GEODIST GEORADIUS GEOHASH 2.可用于实现的功能 3.SpringBoot实 ...

  2. PHP实现附近的人、按距离排序之Redis GEO方案

    [写在前面] 获取附近的人列表,首先要有用户的位置信息,做法是客户端调用一个接口传递用户的经纬度坐标.所在区域adcode等,把这些用户位置信息入库(当然前提是用户开启定位权限). 有了用户位置信息库 ...

  3. Redis实战 - 11 Redis GEO 实现附近的人功能

    各种社交软件里面都有附件的人的需求,在该应用中,我们查询附近1公里的食客,同时只需查询出20个即可. 文章目录 1. Redis GEO常用命令 2. 上传用户地理位置 1. RedisKeyCons ...

  4. Redis基础 -- 地理坐标类型 Redis GEO 和 Redis GEO的常用命令(含GEOHASH编码说明)

    文章目录 1. 地理坐标类型 Redis GEO 1.1 GEOADD:存储坐标 1.2 GEOPOS:获取指定位置的坐标 1.3 GEODIST:计算两个位置之间的直线距离 1.4 GEORADIU ...

  5. Redis GEO详解

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

  6. [LBS学习笔记3]redis geo地理位置查询分析

    1.redis geo命令 1.1 redis6.2版本geo命令简介 redis自3.2版本开始,提供了地理位置相关的命令: GEOADD:添加空间元素 GEOPOS: 获取某个地理位置的坐标 GE ...

  7. Java-使用Redis GEO测算经纬度距离

    一.Redis GEO相关命令操作 GEO也是Redis中提供的一种数据类型,可以将其理解成ZSet有序集合类型 GEOADD GEOADD cars -115.17087 36.12306 my-c ...

  8. Redis GEO使用

    Redis 3.2 版本提供了GEO(地理信息定位)功能,支持存储地理位置及计算地理位置间的距离.美团最近骑手/附近摇一摇/滴滴最近司机等同质功能都可以使用该功能实现. 一.GEO基础知识 2.1 什 ...

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

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

最新文章

  1. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序
  2. SAP WM初阶之IM层面货物移动后WM层面自动完成TO创建和确认
  3. RhinoMock学习-绑定回调
  4. AcWing 199. 余数之和 (除法分块)打卡
  5. 将web项目导入到eclipse/MyEclipse中常见错误
  6. java uppercase方法_Java toUpperCase()方法及其示例
  7. “老师,弃了吧,做个别的……”“笑话,都到这个份上了,怎么能弃掉呢?”...
  8. Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(一)
  9. python 机器学习_基于 Python 语言的机器学习工具Sklearn
  10. python字符串出栈方法_Python 实现字符串反转的9种方法
  11. sql2008 评估期过期解决办法
  12. java版本的RtpStream
  13. phpcms上线步骤,无法生成缓存,页面空白原因
  14. 语音社交app源码中音频混音的实现步骤
  15. 新版gsp五个附录计算机培训,新版GSP附录5 ——验证管理
  16. 传染病模型SIS及相应的matlab代码
  17. HiveQL的基础操作全集
  18. mysql 多字段,多条件查找
  19. 如何用手机观看群晖ds218play上视频
  20. Android开发实用技巧之一:全局获取Context的技巧

热门文章

  1. Dynamics 365Online 应用内消息通知(In-app notifications)
  2. 【Python】Matplotlib画图(四)——折线图
  3. c语言计算跳水分数,C语言判断五位选手跳水名次
  4. 【转】软件史上最逗比的10个错误信息
  5. 微信小程序 | 小程序开发
  6. 数字示波器采样频率 带宽 存储深度的理解
  7. 游戏与常用的五大算法---上篇
  8. MySQL 官方发音
  9. mysql读锁(共享锁)与写锁(排他锁)
  10. ES mget、bulk、mappings