Date de bazăMobilitate

Căutare geospațială

Găsiți cei mai apropiați șoferi, magazine sau dispozitive într-o rază sau într-un dreptunghi, cu poziții live actualizate la câteva secunde.

sau căutări în dreptunghi
Rază
unități
km, mi, m, ft
actualizări de poziție
Live
Pasul 1 din 4
Șoferii raportează pozițiile

Fiecare actualizare înlocuiește poziția anterioară a șoferului.

Sesiune de exempluplaying
# Șoferii raportează pozițiile
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

O demonstrație animată cu comenzi HotKV reale și răspunsuri de exemplu. Faceți clic pe orice pas pentru a sări la el. Comenzile și răspunsurile rămân în engleză, exact așa cum le tastați și le vedeți în HotKV.

Problema

Potrivirea unui pasager cu cel mai apropiat șofer sau a unui client cu cel mai apropiat magazin care are stoc cere o imagine proaspătă a mii de poziții în mișcare și un răspuns în milisecunde. O bază de date relațională cu indexuri spațiale se chinuie cu atâtea actualizări pe secundă.

Cum o rezolvă HotKV

Pozițiile stau într-un index geospațial. Fiecare șofer își actualizează poziția la câteva secunde cu GEOADD, iar GEOSEARCH returnează pe toți cei dintr-o rază sau dintr-un dreptunghi, cei mai apropiați primii, cu distanța lor. Același index răspunde la interogări de localizator de magazine și de zone de livrare.

Pas cu pas

Ce se întâmplă, comandă cu comandă

  1. 01

    Șoferii raportează pozițiile

    Fiecare actualizare înlocuiește poziția anterioară a șoferului.

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

    Un pasager cere o mașină

    Găsiți cei mai apropiați cinci șoferi pe o rază de 3 km, cei mai apropiați primii.

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

    Oferiți cursa

    Blocați șoferul, ca doi pasageri să nu primească aceeași mașină.

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

    Distanța până la preluare

    Distanța dintre doi membri ai indexului.

    GEODIST drivers:berlin driver:17 driver:23 km
Unde se potrivește

Scenarii din lumea reală

Ride-hailing și taxiuri

Șoferii din apropiere sunt găsiți în milisecunde, iar o blocare de ofertă oprește dubla rezervare.

Platforme de livrare

Curierii din apropierea unui restaurant sunt potriviți pe măsură ce comenzile sunt gata.

Localizatoare de magazine

Clienții văd cele mai apropiate magazine dintr-un dreptunghi în jurul vederii hărții.

Integrat

Ce primiți

Poziții live

GEOADD adaugă sau actualizează membri după longitudine și latitudine.

GEOADD

Căutare în rază și în dreptunghi

În jurul unui punct sau al unui membru, sortată după distanță, limitată ca număr.

GEOSEARCHGEOSEARCHSTORE

Distanțe și poziții

Între membri, în unitatea pe care o alegeți.

GEODISTGEOPOS

Sorted set-uri obișnuite dedesubt

Eliminați membri și numărați-i cu comenzile sorted set pe care le cunoașteți.

ZREMZCARD

Întrebări frecvente

Cum elimin un șofer care trece offline?

Un index geospațial este un sorted set, deci ZREM elimină membrul.

Pot căuta într-un dreptunghi?

Da. GEOSEARCH BYBOX primește o lățime și o înălțime în jurul unui punct sau al unui membru.

Ce unități sunt acceptate?

Metri, kilometri, picioare și mile.

Cazuri de utilizare înrudite

Încercați pe propria sarcină de lucru

HotKV vorbește protocolul Redis, așa că puteți îndrepta spre el un client existent și rula aceleași comenzi.