Dados essenciaisMobilidade

Busca geoespacial

Encontre os motoristas, lojas ou dispositivos mais próximos em um raio ou em uma área retangular, com posições ao vivo atualizadas a cada poucos segundos.

ou buscas retangulares
Raio
unidades
km, mi, m, ft
atualizações de posição
Ao vivo
Etapa 1 de 4
Os motoristas informam a posição

Cada atualização substitui a posição anterior do motorista.

Sessão de exemploplaying
# Os motoristas informam a posição
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

Uma demonstração animada com comandos reais do HotKV e respostas de exemplo. Clique em qualquer etapa para ir direto a ela. Os comandos e as respostas ficam em inglês, exatamente como você os digita e vê no HotKV.

O problema

Ligar um passageiro ao motorista mais próximo, ou um cliente à loja mais próxima com estoque, exige uma visão atualizada de milhares de posições em movimento e uma resposta em milissegundos. Um banco de dados relacional com índices espaciais tem dificuldade com tantas atualizações por segundo.

Como o HotKV resolve

As posições ficam em um índice geoespacial. Cada motorista atualiza a própria posição a cada poucos segundos com GEOADD, e GEOSEARCH retorna todos dentro de um raio ou de um retângulo, do mais próximo ao mais distante, com a distância de cada um. O mesmo índice responde a consultas de localizador de lojas e de zonas de entrega.

Passo a passo

O que acontece, comando por comando

  1. 01

    Os motoristas informam a posição

    Cada atualização substitui a posição anterior do motorista.

    GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
  2. 02

    Um passageiro pede um carro

    Encontre os cinco motoristas mais próximos em até 3 km, do mais próximo ao mais distante.

    GEOSEARCH drivers:berlin FROMLONLAT 13.4000 52.5190 BYRADIUS 3 km ASC COUNT 5 WITHDIST
  3. 03

    Ofereça a corrida

    Faça lock do motorista para que dois passageiros não peguem o mesmo carro.

    SET offer:driver:17 rider:42 NX EX 15
  4. 04

    Distância até o embarque

    Distância entre dois membros do índice.

    GEODIST drivers:berlin driver:17 driver:23 km
Onde se encaixa

Cenários reais

Apps de transporte e táxis

Os motoristas próximos são encontrados em milissegundos, e um lock na oferta impede a reserva duplicada.

Plataformas de delivery

Os entregadores perto de um restaurante são escolhidos à medida que os pedidos ficam prontos.

Localizadores de lojas

Os clientes veem as lojas mais próximas dentro de um retângulo em torno da área do mapa.

Integrado

O que você ganha

Posições ao vivo

GEOADD adiciona ou atualiza membros por longitude e latitude.

GEOADD

Busca por raio e por retângulo

Em torno de um ponto ou de um membro, ordenada por distância, limitada por quantidade.

GEOSEARCHGEOSEARCHSTORE

Distâncias e posições

Entre membros, na unidade que você escolher.

GEODISTGEOPOS

Sorted sets comuns por baixo

Remova e conte membros com os comandos de sorted set que você já conhece.

ZREMZCARD

Perguntas frequentes

Como removo um motorista que fica offline?

Um índice geoespacial é um sorted set, então ZREM remove o membro.

Posso pesquisar em um retângulo?

Sim. GEOSEARCH BYBOX recebe uma largura e uma altura em torno de um ponto ou de um membro.

Quais unidades são aceitas?

Metros, quilômetros, pés e milhas.

Casos de uso relacionados

Experimente com a sua própria carga de trabalho

O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.