Redis教程

Redis查询附近的人——GEO

本文主要是介绍Redis查询附近的人——GEO,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

地理信息中,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。

Redis 在 3.2 版本中增加了 GEO 类型用于存储和查询地理位置,GEO 本质上是基于 ZSet 实现的,关于 GEO 的命令主要包含以下 6 个:

  1. geoadd:添加地理位置 
    geoadd key longitude latitude member [longitude latitude member ...]
  2. geopos:查询位置信息
    geopos key member [member ...]
  3. geodist:距离统计
    geodist key member1 member2 [unit]

    unit 参数表示统计单位,它可以设置以下值:

    • m:以米为单位,默认单位;
    • km:以千米为单位;
    • mi:以英里为单位;
    • ft:以英尺为单位。
  4. georadius:查询某位置内的其他成员信息,不带可选参数时,只返回成员的名称,带可选参数时同时返回可选参数的值
    georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
    
     1. WITHCOORD 说明:返回满足条件位置的经纬度信息。

     2. WITHDIST 说明:返回满足条件位置与查询位置的直线距离。

     3.WITHHASH 说明:返回满足条件位置的名称和哈希信息。

     4.COUNT count 说明:指定返回满足条件位置的个数。

     5.ASC|DESC 说明:从近到远|从远到近排序返回。

  5. geohash:查询位置的哈希值
    geohash key member [member ...]
  6. zrem:删除地理位置
    zrem key member [member ...]

 

这篇关于Redis查询附近的人——GEO的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!