Apps de transporte e táxis
Os motoristas próximos são encontrados em milissegundos, e um lock na oferta impede a reserva duplicada.
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.
Cada atualização substitui a posição anterior do motorista.
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.
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.
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.
Cada atualização substitui a posição anterior do motorista.
GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23Encontre 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 WITHDISTFaça lock do motorista para que dois passageiros não peguem o mesmo carro.
SET offer:driver:17 rider:42 NX EX 15Distância entre dois membros do índice.
GEODIST drivers:berlin driver:17 driver:23 kmOs motoristas próximos são encontrados em milissegundos, e um lock na oferta impede a reserva duplicada.
Os entregadores perto de um restaurante são escolhidos à medida que os pedidos ficam prontos.
Os clientes veem as lojas mais próximas dentro de um retângulo em torno da área do mapa.
GEOADD adiciona ou atualiza membros por longitude e latitude.
GEOADDEm torno de um ponto ou de um membro, ordenada por distância, limitada por quantidade.
GEOSEARCHGEOSEARCHSTOREEntre membros, na unidade que você escolher.
GEODISTGEOPOSRemova e conte membros com os comandos de sorted set que você já conhece.
ZREMZCARDUm índice geoespacial é um sorted set, então ZREM remove o membro.
Sim. GEOSEARCH BYBOX recebe uma largura e uma altura em torno de um ponto ou de um membro.
Metros, quilômetros, pés e milhas.
O HotKV fala o protocolo Redis, então você pode apontar um cliente existente para ele e executar estes mesmos comandos.