• Geo命令


    简介:

    Geo是redis用于存储地理位置信息的结构,与redis3.2版本新增。
     

    命令简介:

    1.geoadd:添加地理位置的坐标
    2.geopos:获取地理位置的坐标
    3.geodist:计算两个位置之间的距离
    4.georadius:根据用户给定的经纬度坐标获取指定范围内的地理位置集合
    5.georadiusbymember:根据存储在位置集合里面的某一个地点获取范围内的地理位置集合
    6.geohash:返回一个或者多个位置对象的geohash值。
     

    命令介绍:

    1)geoadd

    可用版本: >=3.2.0
    时间复杂度: 每添加一个元素复杂度为O(log(N))
    命令格式: geoadd key longitude latitude member [longitude latitude member ....]
    作用:
    将给定的空间元素(经度,纬度,名字)添加到指定的键里面,这些数据将会以有序集合的形式保存在key中。
    返回值:
    新添加到key中的空间元素的数量,不包括已经存在但是被更新的元素。
    注意:
    GEOADD可以记录的坐标有限,很接近两级的区域将无法被索引。
    有效的经度在-180到180之间。
    有效的纬度在-85.05112878到85.05112878之间。
    如果输入的经纬度不在有效度数之间的话,geoadd将会返回一个error。
     

    2)geopos

    可用版本: >=3.2.0
    时间复杂度: 获取每一个元素的复杂度为O(log(N))
    命令格式: geopos key member [member ...]
    作用:
    获取key中指定member的位置信息(经度+纬度)。
    返回值:
    返回一个数组,数组中每一个项都由两个元素组成,第一个为经度,第二个为纬度。
    注意:
    当给定的位置元素不存在时,对应的数组项为nil。
     

    3)geodist

    可用版本: >=3.2.0
    时间复杂度: O(log(N))
    命令格式: geodist key member1 member2 [unit]
    作用:
    获取两个位置之间的距离。
    返回值:
    计算出的距离会以双精度浮点数的形式被返回,如果给定的元素不存在,将会返回nil。
    注意:
    unit参数必须是下面其中的一个:
    1. m-米
    2.km-千米
    3.mi-英里
    4.ft-英尺
    没有unit参数时,默认为米。
    geodist计算距离时,默认地球为完美的球形,所以会存在0.5%之内的误差。
     

    4)georadius

    可用版本: >=3.2.0
    时间复杂度: O(N+log(M)),其中 N 为指定半径范围内的位置元素数量, 而 M 则是被返回位置元素的数量。
    命令格式: georadius key longitude latitude radius unit [withcoord] [withdist] [withhash] [asc|desc] [count count]
    作用:
    以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过给定的最大距离的所有位置元素。
    返回值:
    返回一个数组,在没有任何with参数的时候,返回格式为["New York","Milan","Paris"] 这样的线性(linear)列表。
    在有with参数的时候,将会返回一个两层嵌套的数组。第一个位置为元素名称,然后按以下顺序:
    1.浮点数型返回中心与位置元素的距离
    2.geohash整数。
    3.由两个元素组成的坐标,分别为经度与纬度。
    注意:
    withdist:在返回位置元素的同时,将位置元素与中心的距离也一并返回。距离的单位和用户给定的范围单位保存一致。
    withcoord:将位置元素的经度和纬度也一并返回。
    withhash:以52位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。(实际作用不大)
    asc|desc:根据中心位置,安装距离从近到远、从远到近排序。
    count:默认情况下会返回所有匹配的位置元素,count可以限制元素个数。
     

    5)georadiusbymember

    可用版本: >=3.2.0
    时间复杂度: O(log(N)+M), 其中 N 为指定范围之内的元素数量, 而 M 则是被返回的元素数量。
    命令格式: georadiusbymember
    作用:
    以给定的元素为中心,返回键包含的位置元素当中,与中心的距离不超过给定的最大距离的所有位置元素。
    返回值:
    同georadius命令。
     

    6)geohash

    可用版本: >=3.2.0
    时间复杂度: 寻找每个位置元素的复杂度为 O(log(N)) , 其中 N 为给定键包含的位置元素数量。
    命令格式: geohash key member [member ...]
    作用:
    获取一个或者多个位置元素的geohash表示。
    返回值:
    一个数组,每一个元素都是一个geohash。命令返回的geohash位置与用户请求时的位置一一对应。
    作者:红雨
    出处:https://www.cnblogs.com/52why
    微信公众号: 红雨python
  • 相关阅读:
    html 6 border border-width border-style border-color CSS三角形
    html 5 marign top right bottom left
    html 布局
    python学习——生成列表并修改其元素
    python学习——读取染色体长度(七:for循环对染色体序列进行反向互补)
    python学习——读取染色体长度(七:读取fasta文件)
    python学习——读取染色体长度(六:读取含有染色体长度的文件)
    python学习——读取染色体长度(五:从命令行输入染色体长度)
    python学习——读取染色体长度(四:获取最长染色体的编号)
    python学习——读取染色体长度(三、用循环或者函数求总长并获取最长染色体长度)
  • 原文地址:https://www.cnblogs.com/52why/p/14331729.html
Copyright © 2020-2023  润新知