Redis之Geo类型

Geo(地理空间geospatial)

地理空间的三要素:经度longitude,纬度latitude,名称

有效的经度从-180度到180度。
有效的纬度从-85.05112878度到85.05112878度。

地理空间位置可以百度:Geo在线查询

Redis的Geo命令只有6个,都以Geo开头。


常用命令:

(1)添加地理空间:GeoAdd key longitude latitude member …
在这里插入图片描述
我们设置这些地理位置的信息不会自己手动添加,而是读取配置文件,或者获取其他资源,然后用程序直接录入redis。

先是经度,再是纬度,顺序一不小心就会填反了。
当输入的经度纬度不在合法的范围内,将返回一个error。


(2)获取指定成员的地理空间:GeoPos key member [member…]
在这里插入图片描述
返回值:返回一个数组,数组的每一项由2个元素组成:经度和纬度。


(3)计算两个地理空间的直线距离:GeoDist key member1 member2 [unit]
在这里插入图片描述
Unit是距离单位,常用的有m, km, 不写默认为m
这个计算结果最大会误差0.5%

提示:百度了一下,确实结果没差多少。
在这里插入图片描述


(4)查询指定位置范围内的地理空间信息:GeoRadius key longitude latitude radius unit [withCoord] [withDist] [Count num] [asc|desc]
在这里插入图片描述
参数选项:
withCoord: 返回信息中包含元素的地理位置。
withDist: 返回信息中包含元素的距离。
Count num: 返回num个元素。
Asc|desc: 按照距离升序/降序,当不写时,默认不排序,即无序。


(5)查询指定元素范围内的地理空间信息:GeoRadiusByMember key member radius unit [withCoord] [withDist] [Count num] [asc|desc]

该命令作用与GeoRadius类似,只不过中心点是指定元素。
在这里插入图片描述
注意:返回数组中会包含元素本身。


(6)返回元素的GeoHash表示:GeoHash key member [member…]
在这里插入图片描述
返回值:11位的字符串。将二维的经度纬度转成一维的字符串。
如果两个字符串越像,表示这两个地理位置越近。

提示:Geo的底层原理就是Zset,我们可以使用Zset的命令来操作Geo(但实际上就不要这么做了)
在这里插入图片描述


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值