Redis之Geospatial类型

Redis3.2引入了对GEO类型的支援,允许存储和操作经纬度坐标。用户可以进行位置添加、查询、获取两点间距离以及执行范围查询。有效经度范围是-180到180度,纬度范围是-85.05112878到85.05112878度。例如,`geoadd`用于添加位置,`geopos`获取坐标,`geodist`计算距离,而`georadius`则用于范围查询。

Redis 3.2 中增加了对 GEO 类型的支持。GEO,Geographic,地理信息的缩写该类型,就是元素的 2 维坐标,在地图上就是经纬度。redis 基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度 Hash 等常见操作。

注意:
1.有效的经度从 -180 度到 180 度。
2.有效的纬度从 -85.05112878 度到85.05112878 度。
3.当坐标位置超出指定范围时,该命令将会返回一个错误。
4.已经添加的数据,是无法再次往里面添加的。
常用命令如下
1.添加位置

geoadd  key longitude latitude member

//添加中国北京经纬度坐标
geoadd  china 121.47 31.23 beijing

2.获取位置

geopos key member...

//获取北京坐标
geopos china beijing
//结果
redis-linux:0>geopos china beijing
 1)    1)   "121.47000163793563843"
  2)   "31.22999903975783553"

3.获取两个位置之间的直线距离

单位:
m 表示单位为米[默认值]。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。

geodist key value1 value2 [m/km/ft/mi]
//结果
redis-linux:0>geodist china beijing shanghai km
"2103.3706"

4.以给定的经纬度为中心,找出某一半径的元素

georadius key longitude latitude radius [m/km/ft/mi]

//查询中国东经100北纬40为中心 半径为10000km中的城市(随便举个例子)
redis-linux:0>georadius  china 100.00 40.00 10000 km
 1)  "shanghai"
 2)  "beijing"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微笑再加油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值