Redis geodista

Redis geodista
Redis comienza a admitir tipos de datos geoespaciales de la versión 3.2.0. Esta es una de las características únicas que Redis ofrece sobre las otras tiendas de datos. La estructura de datos geoespaciales puede celebrar coordenadas de una ubicación dada. Con el rico conjunto de operaciones, es posible consultar ubicaciones y sus coordenadas basadas en diferentes criterios.

Cada miembro es empujado a un conjunto ordenado redis referenciado por una clave que le permite consultar esos elementos geoespaciales de manera eficiente y de manera ordenada en un momento posterior. Uno de los mejores usos de esta estructura de datos es que puede consultar fácilmente la distancia entre dos ubicaciones geográficas (miembros) utilizando el comando geodista introducido por Redis. Esta será una guía detallada sobre el comando geodista, la sintaxis y sus casos de uso.

Cálculo de distancia

Redis utiliza la fórmula matemática de Haversine para calcular las distancias de los índices geoespaciales que supone que la tierra es una esfera perfecta. Todos sabemos que la tierra no es una esfera perfecta. Entonces, un 0.El error del 5% se puede introducir mediante el cálculo de la distancia. Esto se puede ignorar para aplicaciones como las redes sociales, los buscadores de lugares cercanos y etc. Pero para aplicaciones críticas de error, esto debe usarse con cuidado.

El comando geodista

El comando geodista se usa para calcular la distancia entre dos miembros almacenados en una clave geoespacial dada. Este comando acepta dos parámetros de miembros obligatorios y una clave geoespacial (índice) que apunta a un conjunto ordenado. La distancia se devuelve en metros (m). Opcionalmente, también puede especificar la unidad. Admite kilómetros, millas y pies también.

La sintaxis del comando geodista es la siguiente:

Geodist geospacial_index/key member_1 miembro_2 [m | Km | FT | MI]

Devuelve la distancia como un valor doble. El valor depende de la unidad que haya especificado. Cada vez que el comando encuentra miembros inexistentes o faltantes, devuelve nulo.

Caso de uso: obtenga la distancia entre dos atracciones

Supongamos que una compañía turística introdujo una aplicación móvil para encontrar los detalles de las atracciones en un país determinado. La aplicación móvil utiliza el almacén de datos Redis en su backend para almacenar los detalles de las atracciones, incluidas sus coordenadas geoespaciales.

Han estado utilizando los hashes Redis para almacenar la información básica relacionada con las atracciones. Para la parte de la coordenada de geolocalización, están utilizando la estructura de datos geoespaciales de Redis.

Creemos un nuevo índice geoespacial que contenga dos miembros.

Atracciones de Geoadd: Newyork 23.596920 67.104923 "Lazy Mountain" 134.694013 45.394022 "Río Sabra"

Ahora el "montaña perezosa" y "río Sabra"Los miembros deben almacenarse en un conjunto ordenado al que se hace referencia a la clave Atracciones: Newyork.

Usemos el comando geodista para calcular la distancia entre los dos miembros anteriores. Por defecto, debe devolver la distancia en metros.

Atracciones geodistas: Newyork "Lazy Mountain" "Río Sabra"

Como puede ver, hemos especificado el índice geoespacial como Atracciones: Newyork. A continuación, tenemos a los dos miembros como cuerdas.

Como se esperaba, la salida se devuelve en metros. El tipo de datos dobles se ha utilizado para representar la distancia.

Recuperar la distancia en kilómetros

Es posible recuperar la distancia anterior en kilómetros también. Solo necesitas pasar el argumento opcional 'km' como sigue:

Atracciones geodistas: Newyork "Lazy Mountain" "Sabra River" km

Producción

Recuperar la distancia en millas

Se debe especificar el argumento 'mi' para calcular la distancia entre los miembros dados en millas.

Atracciones geodistas: Newyork "Lazy Mountain" "Sabra River" Mi

Producción

Recuperar la distancia en pies

Siempre que necesite saber la cantidad de pies de un miembro a otro, simplemente especifique la unidad como 'pie'.

Atracciones geodistas: Newyork "Lazy Mountain" "Sabra River" ft

Producción

Siempre que especifique miembros inexistentes, el comando geodista debe devolver nulo. Vamos a especificar dos miembros inexistentes de la siguiente manera:

Atracciones geodistas: Newyork "Lazy" "Sabra"

Producción

Si la tecla especificada no existe, el comando devolverá nulo.

Atracciones geodistas: Washington "Lazy Mountain" "Río Sabra" FT

En el ejemplo anterior, el Atracciones: Washington La clave no está disponible. Entonces, la salida es nula como se muestra en lo siguiente:

Conclusión

En resumen, el tipo de datos geoespaciales de Redis se ha introducido para celebrar coordenadas de geo-localización. Como se mencionó, los valores de longitud y latitud se almacenan para un miembro determinado. Esto se representa como un conjunto ordenado en la memoria. Hay varios comandos disponibles para operar en tipos de datos geoespaciales. El geodista es uno de los comandos útiles que operan en índices geoespaciales para devolver la distancia entre los miembros especificados. Como se discutió en la sección de introducción, la distancia se devuelve en metros por defecto. El comando geodista acepta argumentos opcionales para devolver la distancia en otras unidades, como kilómetros, pies y millas.