Redis指令详解-geo相关指令

本文详细介绍了Redis中的GEO指令,包括GEOADD、GEODIST、GEOHASH、GEOPOS、GEORADIUS和GEORADIUSBYMEMBER。这些指令用于处理和查询基于地理坐标的sorted set,适用于地理位置相关的数据存储和检索,例如根据坐标和半径查找目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

目标

GEOADD

    数据结构sorted set

GEODIST

GEOHASH

GEOPOS

GEORADIUS

GEORADIUSBYMEMBER


目标

列举redis中与geo地理坐标相关的指令,包括作用、使用时需要注意的地方等。使用场景如根据坐标和半径去圈目标。

GEOADD

    GEOADD key 经度 纬度 成员名 [经度 纬度 成员名]
    时间复杂度
        O(logN),N为sorted set中成员数量
    作用
        添加地理成员
    返回
        新增成员个数,不包括已存在

    数据结构sorted set

        可以使用sorted set指令,如ZREM进行删除
    经纬度坐标必须经度在前
    不存储与极点很近的坐标
    经纬度范围
        经度  -180 to 180
        纬度 -85.05112878 to 85.05112878
    经度bit和纬度bit交错后生成唯一的52bit整数,成为geohash,作为sorted set的score

GEODIST

    GEODIST key mem1 mem2 [unit]
    O(log(N))
    返回两个成员的距离
    单位
        m for meters. default
        km for kilometers.
        mi for miles.
        ft for feet.
    返回
        如果成员不存在,则返回NULL
        针对具体单位的double值,用String形式表示

GEOHASH

    GEOHASH key mem [mem]
    O(log(N))
    以数组形式返回参数所列成员的geohash值
    返回的geohash使用11个字符构成的字符串表示

GEOPOS

    GEOPOS key mem [mem]
    O(log(N))
    以数组形式返回参数所列成员的经纬度坐标对,成员不存在则返回NULL

GEORADIUS

    GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
    O(N+log(M))  N:位于以参数经纬度为中心,已参数半径为半径,构成的圆形之内的成员个数。M:sorted set中成员个数。
    用于查找某坐标某半径内的成员
    单位
        m for meters. default
        km for kilometers.
        mi for miles.
        ft for feet.
    其他参数解释
        WITHDIST 同时返回成员与某中心的距离
        WITHCOORD 同时返回经纬度坐标
        WITHHASH 同时返回geohash
        ASC 按照与某中心距离从近到远排序,默认不排序
        DESC 按照与某中心距离从远到近排序,默认不排序
        COUNT count 返回前count成员
    返回
        如果无with参数,则返回成员名称的数组
        如果有with参数,则返回数组的数组

GEORADIUSBYMEMBER

    作用于GEORADIUS一致,只是使用具体成员名代替经纬度

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值