• Redis的GEO结构


    GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有:

    • GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)
    • GEODIST:计算指定的两个点之间的距离并返回
    • GEOHASH:将指定member的坐标转为hash字符串形式并返回
    • GEOPOS:返回指定member的坐标
    • GEORADIUS:指定圆心、半径,找到该圆内包含的所有member,并按照与圆心之间的距离排序后返回。6.以后已废弃
    • GEOSEARCH:在指定范围内搜索member,并按照与指定点之间的距离排序后返回。范围可以是圆形或矩形。6.2.新功能
    • GEOSEARCHSTORE:与GEOSEARCH功能一致,不过可以把结果存储到一个指定的key。 6.2.新功能

    命令概览:

    GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]
    summary: Add one or more geospatial items in the geospatial index represented using a sorted set
    since: 3.2.0
    
    GEODIST key member1 member2 [m|km|ft|mi]
    summary: Returns the distance between two members of a geospatial index
    since: 3.2.0
    
    GEOHASH key member [member ...]
    summary: Returns members of a geospatial index as standard geohash strings
    since: 3.2.0
    
    GEOPOS key member [member ...]
    summary: Returns longitude and latitude of members of a geospatial index
    since: 3.2.0
    
    GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
    summary: Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point
    since: 3.2.0
    
    GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
    summary: Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member
    since: 3.2.0
    
    GEOSEARCH key [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi] [BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count [ANY]] [WITHCOORD] [WITHDIST] [WITHHASH]
    summary: Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle.
    since: 6.2
    
    GEOSEARCHSTORE destination source [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi] [BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count [ANY]] [WITHCOORD] [WITHDIST] [WITHHASH] [STOREDIST]
    summary: Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle, and store the result in another key.
    since: 6.2
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    用例:

    127.0.0.1:6379> geoadd geo1 111.203200 27.680740 yangxi
    (integer) 1
    127.0.0.1:6379> geoadd geo1 111.324864 27.736339 xinhua
    (integer) 1
    127.0.0.1:6379> geodist geo1 xinhua yangxi km
    "13.4824"
    127.0.0.1:6379> geodist geo1 xinhua yangxi m
    "13482.4195"
    127.0.0.1:6379> geohash geo1 xinhua
    1) "wkzjv30rck0"
    127.0.0.1:6379> geohash geo1 yangxi
    1) "wkzj6rpsn20"
    127.0.0.1:6379> geopos geo1 xinhua
    1) 1) "111.32486253976821899"
       2) "27.73633963669661284"
    127.0.0.1:6379> geosearch geo1 frommember yangxi byradius 20 km withdist
    1) 1) "yangxi"
       2) "0.0000"
    2) 1) "xinhua"
       2) "13.4824"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    具体应用在查询附近的人啊,商店,等跟地理位置有关的。

  • 相关阅读:
    GitHub验证的2FA
    ROCBOSS开源微社区轻论坛类源码
    电商APP外包开发-新零售电商系统开发解决方案
    华为OD机考题HJ17 坐标移动
    广东新型制造类企业源代码防泄密方案
    哲学家就餐问题与python解决方案
    探讨Acrel-1000DP分布式光伏系统的设计与应用-安科瑞 蒋静
    windows关闭copilot预览版
    【uniapp】安装与使用uView组件库:
    通信直放站基础知识
  • 原文地址:https://blog.csdn.net/Go_ahead_forever/article/details/133829619