KerndatenMobilität

Geodatensuche

Finden Sie die nächsten Fahrer, Geschäfte oder Geräte in einem Radius oder Rechteck, mit Live-Positionen, die alle paar Sekunden aktualisiert werden.

oder Rechteck-Suche
Radius
Einheiten
km, mi, m, ft
Positionsupdates
Live
Schritt 1 von 4
Fahrer melden Positionen

Jede Aktualisierung ersetzt die vorherige Position des Fahrers.

Beispielsitzungplaying
# Fahrer melden Positionen
hotkv> GEOADD drivers:berlin 13.4050 52.5200 driver:17 13.3889 52.5170 driver:23
(integer) 0

Ein animierter Durchlauf mit echten HotKV-Befehlen und Beispielantworten. Klicken Sie auf einen Schritt, um direkt dorthin zu springen. Befehle und Antworten bleiben auf Englisch, genau so, wie Sie sie in HotKV eingeben und sehen.

Das Problem

Einen Fahrgast dem nächsten Fahrer zuzuordnen oder einen Kunden dem nächstgelegenen Geschäft mit Bestand, braucht einen aktuellen Blick auf Tausende sich bewegender Positionen und eine Antwort in Millisekunden. Eine relationale Datenbank mit räumlichen Indizes tut sich mit so vielen Aktualisierungen pro Sekunde schwer.

So löst HotKV es

Positionen liegen in einem Geodatenindex. Jeder Fahrer aktualisiert seine Position alle paar Sekunden mit GEOADD, und GEOSEARCH liefert alle innerhalb eines Radius oder Rechtecks, die nächsten zuerst, mit ihrer Entfernung. Derselbe Index beantwortet Anfragen für Filialsuche und Liefergebiete.

Schritt für Schritt

Was passiert, Befehl für Befehl

  1. 01

    Fahrer melden Positionen

    Jede Aktualisierung ersetzt die vorherige Position des Fahrers.

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

    Ein Fahrgast fordert ein Auto an

    Finden Sie die fünf nächsten Fahrer innerhalb von 3 km, die nächsten zuerst.

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

    Die Fahrt anbieten

    Sperren Sie den Fahrer, damit nicht zwei Fahrgäste dasselbe Auto bekommen.

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

    Entfernung zum Abholort

    Entfernung zwischen zwei Mitgliedern des Index.

    GEODIST drivers:berlin driver:17 driver:23 km
Wo es passt

Szenarien aus der Praxis

Fahrdienste und Taxis

Fahrer in der Nähe werden in Millisekunden gefunden, und ein Lock auf das Angebot verhindert Doppelbuchungen.

Lieferplattformen

Kuriere in der Nähe eines Restaurants werden zugeordnet, sobald Bestellungen fertig sind.

Filialsuche

Kunden sehen die nächstgelegenen Geschäfte innerhalb eines Rechtecks um den Kartenausschnitt.

Integriert

Was Sie bekommen

Live-Positionen

GEOADD fügt Mitglieder nach Längen- und Breitengrad hinzu oder aktualisiert sie.

GEOADD

Suche nach Radius und Rechteck

Um einen Punkt oder ein Mitglied, sortiert nach Entfernung, begrenzt nach Anzahl.

GEOSEARCHGEOSEARCHSTORE

Entfernungen und Positionen

Zwischen Mitgliedern, in der Einheit Ihrer Wahl.

GEODISTGEOPOS

Darunter einfache Sorted Sets

Entfernen und zählen Sie Mitglieder mit den Sorted-Set-Befehlen, die Sie kennen.

ZREMZCARD

Häufige Fragen

Wie entferne ich einen Fahrer, der offline geht?

Ein Geodatenindex ist ein Sorted Set, daher entfernt ZREM das Mitglied.

Kann ich in einem Rechteck suchen?

Ja. GEOSEARCH BYBOX nimmt eine Breite und Höhe um einen Punkt oder ein Mitglied.

Welche Einheiten werden unterstützt?

Meter, Kilometer, Fuß und Meilen.

Verwandte Anwendungsfälle

Probieren Sie es mit Ihrer eigenen Workload

HotKV spricht das Redis-Protokoll, sodass Sie einen bestehenden Client darauf richten und genau diese Befehle ausführen können.