redis学习之Geospatial地理位置详解

注:该文章的知识和举例来至于狂神b站的redis教学,网站连接

官方文档介绍

将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。

这些数据将会存储到sorted set(底层原理实际就是Zset,所以可以用Zset命令操作geo)

这样的目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作。

该命令以采用标准格式的参数x,y,所以经度必须在纬度之前。这些坐标的限制是可以被编入索引的,区域面积可以很接近极点但是不能索引。具体的限制,由EPSG:900913 / EPSG:3785 / OSGEO:41001 规定如下:

有效的经度从-180度到180度。
有效的纬度从-85.05112878度到85.05112878度。
当坐标位置超出上述指定范围时,该命令将会返回一个错误。

相关命令:
GEOADD
GEODIST
GEOHASH
GEOPOS
GEORADIUS
GEORADIUSBYMEMBER

GEOADD 添加某城市的经纬度信息

例:geoadd key 经度 维度 城市名
在这里插入图片描述

GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)

例:GEOPOS key 城市名
在这里插入图片描述

GEODIST 返回两个给定位置之间的距离

官方介绍:如果两个位置之间的其中一个不存在, 那么命令返回空值。
指定单位的参数 unit 必须是以下单位的其中一个:
m 表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。
如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位。
GEODIST 命令在计算距离时会假设地球为完美的球形, 在极限情况下, 这一假设最大会造成 0.5% 的误差。

在这里插入图片描述

GEORADIUS 指定某一经纬度为中心,返回某个直径范围内的元素

在这里插入图片描述

GEORADIUSBYMEMBER

这个命令和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点指定成员的位置被用作查询的中心。

在这里插入图片描述

GEOHASH 返回一个或多个位置元素的 Geohash 表示

该命令将二维的经纬度转换为一维的字符串,如果两个地点越近,字符串越相似。
在这里插入图片描述

查看所有元素

在这里插入图片描述

删除元素

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值