Redis命令介绍之Geo类型(地理空间)操作命令

本文介绍了Redis中的Geo类型,用于处理地理空间信息。详细讲解了GEOADD、GEODIST、GEOHASH、GEOPOS、GEORADIUS、GEORADIUSBYMEMBER等命令的用法,包括添加坐标、计算距离、获取GeoHash值、查找周边位置等功能。通过示例展示了如何使用这些命令,适用于实现地理位置相关应用的需求。
摘要由CSDN通过智能技术生成

在Redis中,在有序集合以及GeoHash的基础上实现了Geo类型表示地理空间信息。GeoHash是将经纬度进行编码,使二维信息变为一维信息的一种算法。下面我们就来介绍Redis中Geo类型相关的命令。

GEOADD

GEOADD命令用于向Geo类型中添加一个或多个坐标元素,并返回新添加元素个数。若元素已存在(以member参数指定的元素名称作为唯一性判断),则返回值将不包括该元素,但会更新其值。

GEOADD key longitude latitude member [longitude latitude member ...]

在添加时,其经纬度必须符合以下条件:

  • -180 <= longitude <= 180
  • -85.05112878 <= latitude <= 85.05112878

示例

redis> GEOADD buildings 121.5056 0 ShanghaiTower
(integer) 1
redis> GEOPOS buildings ShanghaiTower
1) 1) "121.50559991598129272"
   2) "0.00000126736058093"
redis> GEOADD buildings 121.5056 31.2335 ShanghaiTower 121.4453 31.2235 JinganTemple
# ShanghaiTower已经存在,返回值将不包括它,但会更新其值
(integer) 1
redis> GEOPOS buildings ShanghaiTower
1) 1) "121.50559991598129272"
   2) "31.23349948967888423"
# 不合法的坐标值
redis> GEOADD buildings 1000 500 Unknown
(error) ERR invalid longitude,latitude pair 1000.000000,500.000000

GEODIST

GEODIST命令用于获取两个由GEOADD添加的元素的距离,并表示为参数所指定的距离单位。当其中一个不存在或两个元素都不存在的情况下,将返回nil

GEODIST key member1 member2 [m|km|ft|mi]

GEODIST命令可使用参数设置其距离的单位,允许的值为:

  • m: 米
  • km: 千米
  • ft: 英尺
  • mi: 英里

在未设置的情况下,默认使用米作为单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值