GEO数据结构的基本用法 可以做附近的店铺,附近的用户等

目录

1  GEOADD 方法   存储坐标 返回新添加至位置集合的坐标数量

 2 GEODIST   计算两个位置之间的直线距离

 3 GEOHASH   返回位置的 hash结构

4 GEOPOS   返回插入的坐标

5 GEOSEARCH  周边搜索

6 GEOSEARCHSTORE  可以把结果存储到一个指定的key

 7  使用有序集合命令操作GEO数据


GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有:

  • GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)

  • GEODIST:计算指定的两个点之间的距离并返回

  • GEOHASH:将指定member的坐标转为hash字符串形式并返回

  • GEOPOS:返回指定member的坐标

  • GEORADIUS:指定圆心、半径,找到该圆内包含的所有member,并按照与圆心之间的距离排序后返回。6.以后已废弃

  • GEOSEARCH:在指定范围内搜索member,并按照与指定点之间的距离排序后返回。范围可以是圆形或矩形。6.2.新功能

  • GEOSEARCHSTORE:与GEOSEARCH功能一致,不过可以把结果存储到一个指定的key。 6.2.新功能

1  GEOADD 方法   存储坐标 返回新添加至位置集合的坐标数量

 参数:

  • XX:只更新已经存在的元素。不添加元素。
  • NX:不更新已存在的元素。总是添加新元素。
  • CH:返回被修改的元素个数(CH 是changed的缩写)包括:新增元素、经纬度更新的元素(默认)

使用:

复杂度:O(log (N)*M),其中N为位置集合目前包含的位置数量,M为用户给定的位置数量。 

 2 GEODIST   计算两个位置之间的直线距离

使用:

 

复杂度:O(log (N)),其中N为位置集合目前包含的位置数量。 

 3 GEOHASH   返回位置的 hash结构

使用:

当应用程序因为某些原因只能使用单个值去表示位置的经纬度时,我们就可以考虑使用GEOHASH命令去获取位置坐标的Geohash值,而不是直接使用GEOPOS命令去获取位置的经纬度

4 GEOPOS   返回插入的坐标

使用GEOPOS命令去获取给定位置的坐标

使用:

 

 复杂度:O(log (N)*M),其中N为位置集合目前包含的位置数量,而M则为用户给定的位置数量。

5 GEOSEARCH  周边搜索

说明: key 搜索的key 这个没什么好说的 

             FROMMMEMBER(以那个为中心搜索 这个是设置的value的key) FROMLONLAT (一那个为中心 这个是坐标的方法 )

                BYRADIUS (圆型 半径 多少 单位)  BYBOX(方形 宽高 多少 单位)

                ASC  DESC 升序 降序 这个也没什么好说的  学过一种数据库的都知道

                  COUNT 查多少条

                WITHHASH  结果中包含被匹配位置的Geohash值 WITHDIST 计算出这些点到指定坐标的直线距离  WITHCOORD 返回查询的结过的同时把结果的坐标一起返回

使用:

提前多插入几条数据 数据我乱写的 没有实际意义

使用:

6 GEOSEARCHSTORE  可以把结果存储到一个指定的key

参数一样 

destination 查询后存放数据的key  source 数据源

 使用:

        

 7  使用有序集合命令操作GEO数据

Redis使用有序集合存储GEO数据,一个位置集合实际上就是一个有序集合:当用户调用GEO命令对位置集合进行操作时,这些命令实际上是在操作一个有序集合。

我们可以使用zset命令来操作GEO

可以看这位大佬的

Redis数据结构:Zset类型全面解析_redis zset_栗筝i的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值