本文讲解redis中对经纬度操作支持的数据类型GeoSpatial

1. geoadd经纬度添加

我们打开https://lbs.amap.com/tools/picker进行坐标拾取,分别拾取静安区
、黄浦区、杨浦区、浦东新区坐标点

127.0.0.1:6379> geoadd region 121.447348 31.227718 jingan
(integer) 1
127.0.0.1:6379> geoadd region 121.48442 31.231661 huangpu
(integer) 1
127.0.0.1:6379> geoadd region 121.525409 31.259588 yangpu
(integer) 1
127.0.0.1:6379> geoadd region 121.544346 31.221461 pudong
(integer) 1

2. geodist求两点之间距离

# 计算静安与黄浦直线距离
127.0.0.1:6379> geodist region jingan huangpu
"3553.2114"

3. geohash编码

GeoHash就是一种将经纬度转换成字符串的方法,字符串前缀匹配越多的距离越近

127.0.0.1:6379> geohash region jingan huangpu
1) "wtw3esg68k0"
2) "wtw3smw3850"

4. geopos返回坐标点

127.0.0.1:6379> geopos region jingan
1) 1) "121.44734770059585571"2) "31.22771779071442921"

5. 返回圆形内所有点

# 自从6.2.0开始,采用geosearch
# 通过坐标点名搜索周边4公里点
127.0.0.1:6379> geosearch region frommember jingan BYRADIUS 4 KM
1) "jingan"
2) "huangpu"
# 通过具体坐标点搜索周边4公里点
127.0.0.1:6379> geosearch region fromlonlat 121.447348 31.227718 BYRADIUS 4 KM
1) "jingan"
2) "huangpu"
# 返回额外距离、经纬度信息
127.0.0.1:6379> geosearch region fromlonlat 121.447348 31.227718 BYRADIUS 4 KM withdist withcoord
1) 1) "jingan"2) "0.0000"3) 1) "121.44734770059585571"2) "31.22771779071442921"
2) 1) "huangpu"2) "3.5532"3) 1) "121.48442119359970093"2) "31.23166181683836129"

6.返回矩形内点

# 以静安为矩形坐标中心点,查找宽高各为8KM的矩形内点
127.0.0.1:6379> geosearch region fromlonlat 121.447348 31.227718 bybox 8 8 KM
1) "jingan"
2) "huangpu"

7. 存储搜索结果到新key

127.0.0.1:6379> geosearchstore result region fromlonlat 121.447348 31.227718 bybox 8 8 KM
(integer) 2
127.0.0.1:6379> zrange result 0 -1
1) "jingan"
2) "huangpu"

一般在工作中,用ES坐标点geo_point及形状geo_shape[支持多边形围栏搜索]比较多些,但也要看实际工作需求了

欢迎关注公众号算法小生查看最新文章

10.Redis系列之数据类型GeoSpatial相关推荐

  1. redis系列之——高可用(主从、哨兵、集群)

    Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...

  2. redis系列之——一致性hash算法

    Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...

  3. 10. Redis数据类型--Geospatial

    10.Redis数据类型–Geospatial 地理空间(geospatial) Geospatial–Redis中文网 : http://www.redis.cn/commands/geoadd.h ...

  4. ❤️Bitmaps、HyperLogLog、Geospatial❤️——Redis三大特殊数据类型详述(万字长文原理讲解,大厂面试高频知识点,一文尽收囊中)

    本文已收录于专栏 ❤️<Redis之大厂必备技能包>❤️ 欢迎各位关注.三连博主的文章及专栏,全套Redis学习资料,大厂必备技能! 目录 简介 一.Bitmaps 1.简介 2 .基本操 ...

  5. NoSql之Redis系列一: Redis的数据类型和基本使用

    NoSql之Redis系列一: Redis的数据类型和基本使用 Redis简介及特点 Redis常用数据结构及使用 启动redis-server (win) 使用redis-cli操作redis St ...

  6. redis 系列10 字符串对象

    redis 系列10 字符串对象 原文:redis 系列10 字符串对象 一. 字符串对象编码 Redis中字符串可以存储3种类型,分别是字节串(byte string).整数.浮点数.在上章节中讲到 ...

  7. 上手Redis系列(六):超全Geospatial特殊类型详解(地理位置)

    学习Redis之前,我还是觉得我务必跟你说一声,也是在我文章之中说的很多的一句话,我想也会适用于学习Redis,那就是在接触文章里的Reids命令时,不用试图去记这些命令 ,用到时去看API帮助文档即 ...

  8. Redis新数据类型Geospatial

    1.前言 Redis 3.2 中增加了对GEO类型的支持.GEO,Geographic,地理信息的缩写.该类型,就是元素的2维坐标,在地图上就是经纬度.redis基于该类型,提供了经纬度设置,查询,范 ...

  9. Redis学习(4)-数据类型set和zset

    Set数据类型及操作 Set集合是通过hash table实现的,所以添加.删除和查找的复杂度都是O(1),hash table会随着添加或者删除自动的调整大小,需要注意的是 hash table大小 ...

最新文章

  1. linux 内核编译错误 .size expression for copy_user_generic_c does not evaluate to a constant
  2. 每日一皮:为什么程序猿是最适合谈恋爱的人
  3. 刘强东写在上市之际:京东要成为一家世界级企业 感慨吧
  4. 医院病案档案管理系统php_医疗产品经理必懂:医院业务流程及系统
  5. 神策游戏解决方案:赋能游戏产业精品化研运升级
  6. [MATLAB粒子模拟笔记]粒子坐标速度初始化
  7. win8.1 USB启动盘制作(不支持UEFI,不支持GPT分区)
  8. linux部署的java应用,浏览器访问时,报域名解析错误
  9. 一键了结CUP100%问题
  10. runas/cpau/lsrunase使用小结(以管理员运行指定程序)
  11. html点击按钮切换图片代码_单次点击实现远程代码执行:内容管理框架Drupal恶意图片上传漏洞利用链分析...
  12. 【转】Topshelf 搭建 Windows 服务
  13. 遗传算法python实现
  14. python 移动文件 覆盖_python 剪切移动文件的实现代码
  15. crontab 每周五_关于linux:如何在星期天每周运行crontab作业
  16. 欧洲对地观测卫星和无人机发展现状简介
  17. 【DP】【Burnside】【多项式】烷基计数
  18. 阿里云国际版查看云服务器ecs实例系统日志和截图-Unirech
  19. 【Unity】Obi插件系列(六)——Obi Rope
  20. 了解Windows WDDM 驱动程序

热门文章

  1. 360在智能硬件的逆袭
  2. 内达培训python多少钱
  3. 对LOWORD, HIWORD, LOBYTE, HIBYTE的理解
  4. 难题:什么是业务逻辑?
  5. 分享9款学习必备软件,最后一个你肯定会喜欢
  6. 虚拟展会结合AI数字人,帮助企业解决当下困局
  7. Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL
  8. 《小狗钱钱》听书笔记
  9. genetic model
  10. 泰坦尼克号可视化数据分析报告