zoukankan      html  css  js  c++  java
  • PHPRedis教程之geo

    前言

    支持 GEO 系列命令的 Redis 版本从 3.2.0 起开始才可以使用,所以之前版本就不要想了。

    函数列表

    geoadd - 将指定的地理空间项(纬度,经度,名称)添加到指定的键, 数据作为有序集存储在 Redis 中。

    GEOADD key longitude latitude member [longitude latitude member …]

    key - 存储在 Redis 中的指定的键

    longitude - 经度

    latitude - 纬度

    member - 成员名称

    <?php
      $redis->geoadd("city", 117.224311, 39.111515, "天津")
    // 1
        $redis->geoadd("city", 116.40378, 39.91544, "北京", 121.473913, 31.222965, "上海")
    // 2
    ?>
    

    geopos - 返回由key处的有序集表示的地理空间索引的所有指定成员的位置(经度,纬度)。

    GEOPOS key member [member ...]

    key - 存储在 Redis 中的指定的键

    member - 成员名称

    <?php
      $redis->geopos("city", "天津") // Array ( [0] => Array ( [0] => 117.22431153059005737 [1] => 39.11151424175071867 ) )
      $redis->geopos("city", "天津", "北京") // Array ( [0] => Array ( [0] => 117.22431153059005737 [1] => 39.11151424175071867 ) [1] => Array ( [0] => 116.40378087759017944 [1] => 39.91543907825245441 ) )
    ?>
    

    geodist - 返回由有序集合表示的地理空间索引中的两个成员之间的距离。

    GEODIST key member1 member2 [unit]

    key - 存储在 Redis 中的指定的键

    member - 成员名称

    unit - 单位 m(米),km(千米),mi(英里),ft(英尺)

    <?php
      $redis->geodist("city","天津", "北京","km") //113.8093
    ?>
    

    georadius - 使用GEOADD返回包含地理空间信息的已排序集合的成员,这些信息位于中心位置和与中心的最大距离(半径)指定区域的边界内。

    GEORADIUS key longitude latitude radius unit(m|km|ft|mi) [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]

    key - 存储在 Redis 中的指定的键

    longitude - 经度

    latitude - 纬度

    radius - 半径

    unit - 单位 m(米),km(千米),mi(英里),ft(英尺)

    WITHCOORD 返回目标的经纬度

    WITHDIST 返回距离中心点的距离

    WITHHASH 返回 52位 无符号整数的 geohash 有序集合分数

    COUNT 返回条数
    ASC|DESC 正序排序|倒序排序

    <?php
      $redis->georadius("city", 117.224311, 39.111515, 1000, "km", ['WITHDIST','ASC'])
    	// Array ( [0] => Array ( [0] => 上海 [1] => 958.4076 ) [1] => Array ( [0] => 北京 [1] => 113.8092 ) [2] => Array ( [0] => 天津 [1] => 0.0001 ) )
    	$redis->georadius("city", 117.224311, 39.111515, 1000, "km", ['WITHCOORD','WITHDIST','ASC','COUNT'=>1])
    	// Array ( [0] => Array ( [0] => 天津 [1] => 0.0001 [2] => Array ( [0] => 117.22431153059005737 [1] => 39.11151424175071867 ) ) )
    ?>
    

    georadiusbymember - 这个命令与GEORADIUS完全相同,区别在于该命令返回的是成员附近的所有成员

    GEORADIUSBYMEMBER key member radius unit(m|km|ft|mi) [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]

    key - 存储在 Redis 中的指定的键

    member - 成员名称

    radius - 半径

    unit - 单位 m(米),km(千米),mi(英里),ft(英尺)

    WITHCOORD 返回目标的经纬度

    WITHDIST 返回距离中心点的距离

    WITHHASH 返回 52位 无符号整数的 geohash 有序集合分数

    COUNT 返回条数
    ASC|DESC 正序排序|倒序排序

    <?php
      $redis->georadiusbymember("city", "天津", 200, "km", ['WITHCOORD', 'WITHDIST', 'ASC'])
      //Array ( [0] => Array ( [0] => 天津 [1] => 0.0000 [2] => Array ( [0] => 117.22431153059005737 [1] => 39.11151424175071867 ) ) [1] => Array ( [0] => 北京 [1] => 113.8093 [2] => Array ( [0] => 116.40378087759017944 [1] => 39.91543907825245441 ) ) )
    ?>
    

    geohash - 返回有效的Geohash字符串

    GEOHASH key member [member …]

    key - 存储在 Redis 中的指定的键

    member - 成员名称

    <?php
      $redis->geohash("city", "天津", "北京")
      // Array ( [0] => wwgqe801h60 [1] => wx4g0f6sk90 )
    
  • 相关阅读:
    将数据挂载到 docker 容器中的3种方式:volume、bind mount、tmpfs
    kubectl 常用命令
    Kubernetes 知识点
    spring boot 学习资料
    docker 常见系统镜像
    docker 的前台模式和后台模式
    Docker容器里的进程为什么要前台运行?相同的问题:docker运行apache为什么带FOREGROUND参数?docker运行nginx为什么带`daemon off`参数?
    spring cloud 各核心组件作用
    nginx 镜像使用说明
    optimization.splitChunks 中,chunks 的3个值:all、async、initial 的含义
  • 原文地址:https://www.cnblogs.com/l5gw/p/11242223.html
Copyright © 2011-2022 走看看