VTC y taxis
Los conductores cercanos se encuentran en milisegundos, y un bloqueo de la oferta evita las reservas duplicadas.
Encuentra los conductores, tiendas o dispositivos más cercanos en un radio o en un rectángulo, con posiciones en vivo actualizadas cada pocos segundos.
Cada actualización sustituye la posición anterior del conductor.
Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.
Asignar a un pasajero el conductor más cercano, o a un cliente la tienda más próxima con stock, requiere una visión actualizada de miles de posiciones en movimiento y una respuesta en milisegundos. A una base de datos relacional con índices espaciales le cuesta soportar tantas actualizaciones por segundo.
Las posiciones viven en un índice geoespacial. Cada conductor actualiza su propia posición cada pocos segundos con GEOADD, y GEOSEARCH devuelve a todos los que están dentro de un radio o un rectángulo, el más cercano primero, con su distancia. El mismo índice responde a las consultas del localizador de tiendas y de las zonas de reparto.
Cada actualización sustituye la posición anterior del conductor.
GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23Encuentra los cinco conductores más cercanos en 3 km, el más cercano primero.
GEOSEARCH drivers:berlin FROMLONLAT 13.4000 52.5190 BYRADIUS 3 km ASC COUNT 5 WITHDISTBloquea al conductor para que dos pasajeros no puedan obtener el mismo coche.
SET offer:driver:17 rider:42 NX EX 15Distancia entre dos miembros del índice.
GEODIST drivers:berlin driver:17 driver:23 kmLos conductores cercanos se encuentran en milisegundos, y un bloqueo de la oferta evita las reservas duplicadas.
Los repartidores cercanos a un restaurante se asignan a medida que los pedidos están listos.
Los clientes ven las tiendas más cercanas dentro de un rectángulo alrededor de la vista del mapa.
GEOADD añade o actualiza miembros por longitud y latitud.
GEOADDAlrededor de un punto o de un miembro, ordenada por distancia y limitada por número.
GEOSEARCHGEOSEARCHSTOREEntre miembros, en la unidad que elijas.
GEODISTGEOPOSElimina miembros y cuéntalos con los comandos de sorted sets que ya conoces.
ZREMZCARDUn índice geoespacial es un sorted set, así que ZREM elimina el miembro.
Sí. GEOSEARCH BYBOX recibe un ancho y un alto alrededor de un punto o de un miembro.
Metros, kilómetros, pies y millas.
HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.