Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Redis permite indexar coordenadas y buscar ubicaciones cercanas con GEOADD y GEOSEARCH; agrupar comandos en un pipeline puede reducir los viajes de ida y vuelta. Eso no garantiza consultas en microsegundos. Tampoco hay información suficiente para dar pasos específicos de «wpipe»: no está identificado si es una biblioteca, un servicio, una herramienta de shell o un nombre interno. La guía siguiente cubre el flujo Redis Geo documentado y señala qué debe verificarse antes de adaptarlo a wpipe.

Qué hace Redis Geo y qué no demuestra «en microsegundos»

Redis almacena datos geoespaciales como un sorted set y codifica longitud y latitud intercalando bits mediante geohash. Con GEOADD se incorporan puntos; GEOSEARCH encuentra los que quedan dentro de un círculo o un rectángulo. La frase «en microsegundos» debe entenderse como una meta de rendimiento, no como una latencia garantizada: el tiempo real depende, entre otras cosas, de la red, la carga, el tamaño de la búsqueda y los parámetros usados. La documentación de Redis sobre datos geoespaciales explica cómo se representan y consultan estos datos.

Las fuentes disponibles no identifican qué significa wpipe ni especifican su API o versión. Por tanto, los comandos Redis de abajo son el flujo respaldado; no son instrucciones de instalación ni ejemplos de código cliente para wpipe.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cómo indexar puntos con GEOADD

El orden de las coordenadas es importante: GEOADD recibe primero la longitud y después la latitud, seguidas del nombre del miembro. La referencia de Redis indica una complejidad de O(log(N)) por elemento añadido.

GEOADD bikes:rentable -122.27652 37.805186 station:1

Ese es un ejemplo de la documentación de Redis. Antes de indexar, valida que la longitud esté entre −180 y 180 grados y la latitud entre −85.05112878 y 85.05112878. Un punto fuera de esos rangos no es indexable mediante este comando.

Un mismo comando puede incluir varios tríos de longitud, latitud y miembro. Las opciones documentadas incluyen NX, XX y CH; NX y XX son mutuamente excluyentes. Consulta la sintaxis vigente de GEOADD al decidir cómo manejar miembros existentes.

Cómo buscar ubicaciones cercanas con GEOSEARCH

Usa GEOSEARCH para consultar desde unas coordenadas o desde un miembro existente. Elige BYRADIUS para un círculo o BYBOX para un rectángulo; las unidades admitidas son metros (m), kilómetros (km), pies (ft) y millas (mi).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
GEOSEARCH bikes:rentable FROMLONLAT -122.2612767 37.7936847 BYRADIUS 5 km WITHDIST

Este ejemplo de la documentación busca dentro de un radio de cinco kilómetros y devuelve también las distancias. Es un ejemplo funcional de uso, no una medición de latencia.

Adapta las opciones al resultado que necesita la aplicación:

  • ASC o DESC ordena los resultados por distancia, ascendente o descendente.
  • COUNT limita cuántos resultados se devuelven.
  • WITHDIST incluye la distancia; WITHCOORD, las coordenadas; y WITHHASH, el valor geohash.
  • BYRADIUS y BYBOX representan formas de búsqueda distintas. Comprueba que la elegida se ajuste a la necesidad geográfica y mide cada configuración por separado.

GEOSEARCH está disponible desde Redis Open Source 6.2.0. Redis recomienda este comando en lugar de GEORADIUS y GEORADIUSBYMEMBER, que están obsoletos. La sintaxis completa está en la referencia oficial de GEOSEARCH.

Qué aporta un pipeline y qué deja igual

Un pipeline permite enviar varios comandos sin esperar una respuesta de ida y vuelta entre cada uno. Así puede amortizar el coste de los viajes de red y aumentar el número de operaciones por segundo, especialmente cuando la latencia de ida y vuelta pesa en una secuencia de comandos. Redis describe ese beneficio en su documentación de pipelining.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

El pipeline no cambia el trabajo geoespacial que realiza cada GEOSEARCH, no reduce por sí mismo la complejidad de la búsqueda y no establece una duración fija por consulta. Redis resume su propósito así: “Pipelining is not just a way to reduce the latency cost associated with the round trip time, it actually greatly improves the number of operations you can perform per second in a given Redis server.” Es una afirmación general de la documentación del proveedor, no una garantía para una aplicación o carga concreta.

La documentación disponible no especifica la API de cliente de wpipe. No es posible convertir este concepto en pasos de configuración o código atribuibles a esa herramienta sin conocer su identidad y versión. En un cliente que sí ofrezca pipelining, verifica su propia documentación para confirmar cómo se agrupan los comandos y cómo se recogen las respuestas.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Complejidad y latencias publicadas: cómo interpretarlas

La complejidad describe cómo crece el trabajo según el tamaño de los datos; no equivale a un SLA ni permite calcular directamente la duración en microsegundos. Para GEOSEARCH, Redis expresa la complejidad como O(N+log(M)): N es el número de elementos en la caja alineada con la cuadrícula que rodea la forma de búsqueda y M el número de elementos dentro de esa forma. La definición pertenece a la referencia de GEOSEARCH.

Dato publicado Qué mide o describe Alcance
O(log(N)) por elemento en GEOADD Complejidad documentada de añadir un elemento Referencia actual de Redis; no es una medida de tiempo
O(N+log(M)) en GEOSEARCH Complejidad documentada de la consulta, con las definiciones de N y M indicadas arriba Referencia actual de Redis; no es una medida de tiempo
93.598 ms en Redis 7.0.5; 73.046 ms en Redis 7.0.7 Latencia media con RTT para la consulta GEOSEARCH descrita en el benchmark Benchmark de Redis de 2023, con un cliente y sin pipeline; la reducción entre esas versiones es de aproximadamente 22% en esa prueba

Los valores de latencia proceden de un benchmark específico publicado por Redis, no de una prueba de wpipe ni de una predicción para otras cargas. Sus condiciones no justifican extrapolar esos números a otra versión, red, conjunto de datos o configuración. El artículo de Redis, Speeding Up Geographic Commands in Redis 7, detalla el contexto de esa comparación. Las cifras publicadas son milisegundos, y no establecen una estadística general que demuestre respuestas en microsegundos para una configuración no especificada.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cómo comprobar si una configuración se acerca a su objetivo

Para que una comparación sea interpretable, cambia una variable cada vez y registra las condiciones junto a los resultados. Mantén iguales la versión de Redis, los datos y su distribución espacial, la región de red, el cliente y la carga. Si comparas consultas, conserva también el mismo radio o rectángulo y el mismo límite de resultados.

  • Compara círculo y rectángulo como casos separados.
  • Separa búsquedas ordenadas de las no ordenadas.
  • Compara resultados completos con una búsqueda limitada mediante COUNT solo si ambos casos responden a una necesidad equivalente.
  • Mide por separado el comando individual y el envío agrupado en pipeline; distingue el tiempo de respuesta de la consulta del rendimiento agregado de varias operaciones.
  • Registra la versión exacta. Redis 7.0.5 y 7.0.7 solo son una comparación útil si se reproduce la misma prueba publicada; no son una garantía de mejora para otra carga.

La latencia observada en una medición depende de sus condiciones. Informa versión, conjunto y distribución de datos, forma y tamaño de la búsqueda, ordenamiento, límite, cliente, región de red y carga, además de si se usó pipeline. Sin esos datos, una cifra en microsegundos no permite saber qué se midió ni si representa el uso real.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.