Redis使用学习汇总(九)之地理坐标

Redis数据结构:地理坐标


通过地理坐标(Redis GEO),用户可将经纬度格式的地理坐标存储并进行操作。


数据结构

  • 地理坐标
    在这里插入图片描述

地理坐标

  • 存储坐标
    1.geoadd命令  格式:geoadd key [NX|XX] [CH] longitude latitude member [longitude latitude member …]
    将一个或多个经纬度坐标存储到位置集合中并对应设置名字,执行后返回新添加的坐标数量,若是更新member的位置坐标则返回0。
    geoadd key longitude latitude member [longitude latitude member ...]
    在这里插入图片描述
    XX选项的作用是只更新不添加,执行后返回0。
    geoadd key XX longitude latitude member [longitude latitude member ...]
    在这里插入图片描述
    NX选项的作用是只添加不更新,执行成功返回添加元素的个数。
    geoadd key NX longitude latitude member [longitude latitude member ...]
    在这里插入图片描述
    CH选项的作用是返回被修改成员的数量而非添加成功的成员数量,被修改包括新添加。
    geoadd key CH longitude latitude member [longitude latitude member ...]
    在这里插入图片描述

  • 获取指定位置坐标
    1.geopos命令  格式:geopos key member [member …]
    获取给定位置的坐标,返回一个数组作为执行结果,数组第一个项和第二个项与用户设置的顺序相同,位置不存在时返回nil。
    geopos key member [member ...]
    在这里插入图片描述

  • 获取指定位置的Geohash值
    1.geohash命令  格式:geohash key member [member …]
    获取经纬度坐标的Geohash表示,字符串格式返回。位置集合或位置不存在时返回nil。
    geohash key member [member ...]
    在这里插入图片描述

  • 计算位置间直线距离
    1.geodist命令  格式:geodist key member1 member2 [m|km|ft|mi]
    默认情况下返回的距离以米为单位,ft为英尺,mi为英里。位置不存在时返回nil。
    geodist key member1 member2 [m|km|ft|mi]
    在这里插入图片描述

  • 查找指定坐标半径内的其他位置
    1.georadius命令  格式:georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
    在位置集合中,查找位于给定经纬度给定半径内的位置。位置集合不存在或集中中无满足位置返回空集。
    georadius key longitude latitude radius m|km|ft|mi
    在这里插入图片描述
    WITHDIST选项可返回匹配位置与给定位置间距离,数组形式返回。
    georadius key longitude latitude radius m|km|ft|mi WITHDIST
    在这里插入图片描述
    WITHCOORD 选项可返回匹配位置坐标,数组形式返回。
    georadius key longitude latitude radius m|km|ft|mi WITHCOORD WITHDIST
    在这里插入图片描述
    ASC|DESC选项可指定返回结果排序方式,按照距离升序(ASC)或降序(DESC)排列返回,不指定时默认升序。
    georadius key longitude latitude radius m|km|ft|mi WITHCOORD WITHDIST ASC|DESC
    在这里插入图片描述
    COUNT count [ANY]选项指定返回的位置个数。
    georadius key longitude latitude radius m|km|ft|mi WITHCOORD WITHDIST ASC|DESC COUNT count [ANY]
    在这里插入图片描述

  • 查找指定位置半径内的其他位置
    1.georadiusbymember命令  格式:georadiusbymember key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
    与georadius的区别是给定的不是经纬度而是集合中的位置,匹配位置中会返回指定的位置。集合不存在时返回空集,位置不存在时返回error。
    georadiusbymember key member radius m|km|ft|mi
    在这里插入图片描述

  • 使用有序集合命令操作GEO数据
    一个位置集合实际上就是一个有序集合,经纬度及位置添加到位置集合实际上就是把给定的经纬度转成数字Geohash值添加到有序集合。
    在这里插入图片描述

  • 常见用法
    1.查找附近用户


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值