English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

GEO de Redis

Redis GEO se utiliza principalmente para almacenar información geoespacial y realizar operaciones en la información almacenada, esta función está disponible en Redis 3.2 Añadido en la versión.

Los métodos de operación GEO de Redis incluyen:

  • geoadd: agrega las coordenadas de ubicación.

  • geopos: obtiene las coordenadas de ubicación.

  • geodist: calcula la distancia entre dos ubicaciones.

  • georadius: obtiene una colección de ubicaciones geográficas dentro de un rango específico basado en las coordenadas de longitud y latitud proporcionadas por el usuario.

  • georadiusbymember: obtiene una colección de ubicaciones geográficas dentro de un rango específico basado en un punto de ubicación almacenado en la colección de ubicaciones.

  • geohash: devuelve el valor geohash de uno o más objetos de ubicación.

geoadd

geoadd se utiliza para almacenar ubicaciones geoespaciales específicas, puede agregar una o más longitudes (longitud), latitudes (latitud) y nombres de ubicación (miembro) a la clave especificada.

El formato de sintaxis de geoadd es el siguiente:

GEOADD clave longitud latitud miembro [longitud latitud miembro ...]

En el siguiente ejemplo, la clave es Sicily y Palermo y Catania son nombres de ubicación:

redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(entero) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"
redis>

geopos

geopos se utiliza para devolver todas las ubicaciones (longitud y latitud) especificadas (miembro) dentro de la clave dada, si no existe, devuelve nil.

El formato de sintaxis de geopos es el siguiente:

GEOPOS clave miembro [miembro ...]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(entero) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.36138933897018433"
   2) "38.11555639549629859"
2) 1) "15.08726745843887329"
   2) "37.50266842333162032"
3) (nil)
redis>

geodist

geodist se utiliza para devolver la distancia entre dos ubicaciones dadas.

El formato de sintaxis de geodist es el siguiente:

GEODIST key member1 member2 [m|km|ft|mi]

member1 member2 para dos ubicaciones geográficas.

Descripción del último parámetro de unidad de distancia:

  • m: metros, la unidad predeterminada.

  • km: kilómetros.

  • mi: millas.

  • ft: pies.

  • Calcular la distancia entre Palermo y Catania:

  • redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (entero) 2
    redis> GEODIST Sicily Palermo Catania
    "166274.1516"
    redis> GEODIST Sicily Palermo Catania km
    "166.2742"
    redis> GEODIST Sicily Palermo Catania mi
    "103.3182"
    redis> GEODIST Sicily Foo Bar
    (nulo)
    redis>

    georadius, georadiusbymember

    georadius devuelve todos los elementos de posición que contienen la clave y están a una distancia no superior a la distancia máxima dada desde el centro dado.

    georadiusbymember y el comando GEORADIUS pueden encontrar elementos ubicados dentro de un rango específico, pero el punto central de georadiusbymember se determina por el elemento de posición dado, en lugar de usar la longitud y latitud para determinar el punto central.

    El formato de sintaxis de georadius y georadiusbymember es el siguiente:

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

    Descripción de los parámetros:

    • m: metros, la unidad predeterminada.

    • km: kilómetros.

    • mi: millas.

    • ft: pies.

    • WITHDIST: devuelve la distancia entre el elemento de posición y el centro al mismo tiempo.

    • WITHCOORD: devuelve también la longitud y latitud del elemento de posición.

    • WITHHASH: con 52 La forma de entero con signo, devuelve el valor del conjunto ordenado del elemento de posición después de la codificación geohash original. Esta opción se utiliza principalmente para aplicaciones de nivel inferior o depuración, y su efecto real no es muy grande.

    • COUNT limita el número de registros devueltos.

    • ASC: Los resultados de búsqueda se ordenan de cerca a lejos.

    • DESC: Los resultados de búsqueda se ordenan de lejos a cerca.

    Ejemplo de georadius:

    redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (entero) 2
    redis> GEORADIUS Sicily 15 37 200 km WITHDIST
    1) 1) "Palermo"
       2) "190.4424"
    2) 1) "Catania"
       2) "56.4413"
    redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
    1) 1) "Palermo"
       2) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    2) 1) "Catania"
       2) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
    1) 1) "Palermo"
       2) "190.4424"
       3) 1) "13.36138933897018433"
          2) "38.11555639549629859"
    2) 1) "Catania"
       2) "56.4413"
       3) 1) "15.08726745843887329"
          2) "37.50266842333162032"
    redis>

    Ejemplo de georadiusbymember:

    redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
    (entero) 1
    redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (entero) 2
    redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
    1) "Agrigento"
    2) "Palermo"
    redis>

    geohash

    Redis GEO utiliza geohash para almacenar las coordenadas geográficas.

    Geohash se utiliza para obtener los valores geohash de uno o más elementos de ubicación.

    El formato de sintaxis de geohash es el siguiente:

    GEOHASH clave miembro [miembro ...]

    Ejemplo:

    redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
    (entero) 2
    redis> GEOHASH Sicily Palermo Catania
    1) "sqc8b49rny0"
    2) "sqdtr74hyu0"
    redis>