Redis Geodist

Redis Geodist
Redis unterstützt Geospatial -Datentypen aus Version 3.2.0. Dies ist eine der einzigartigen Funktionen, die Redis über die anderen Datenspeicher anbietet. Die Geospatial -Datenstruktur kann Koordinaten eines bestimmten Ortes enthalten. Mit den reichen Operationen ist es möglich, Standorte und deren Koordinaten auf der Grundlage verschiedener Kriterien abzufragen.

Jedes Mitglied wird in einen Redis -Sortier -Set eingetrieben, auf das ein Schlüssel verwiesen wird, mit dem Sie diese Geospatial -Elemente zu einem späteren Zeitpunkt effizient und auf geordnete Weise abfragen können. Einer der besten Verwendungen dieser Datenstruktur ist, dass Sie den Abstand zwischen zwei Geo-Lokationen (Mitgliedern) mit dem von Redis eingeführten Geodistenbefehl problemlos abfragen können. Dies ist eine detaillierte Anleitung zum Geodistenbefehl, der Syntax und seiner Anwendungsfälle.

Entfernungsberechnung

Redis verwendet die mathematische Formel aus Haversine. Wir alle wissen, dass die Erde keine perfekte Sphäre ist. Also eine 0.5% Fehler können durch die Entfernungsberechnung eingeführt werden. Dies kann für Anwendungen wie Social Media, nahe gelegene Ortsfinder usw. ignoriert werden. Für fehlerkritische Anwendungen sollte dies jedoch mit Sorgfalt verwendet werden.

Der Geodistenbefehl

Der Geodistenbefehl wird verwendet, um den Abstand zwischen zwei Mitgliedern zu berechnen, die in einem bestimmten Geodatenschlüssel gespeichert sind. Dieser Befehl akzeptiert zwei obligatorische Mitgliedsparameter und einen Geospatial -Schlüssel (Index), der auf einen sortierten Satz verweist. Die Entfernung wird in Metern (m) zurückgegeben. Optional können Sie auch das Gerät angeben. Es unterstützt auch Kilometer, Meilen und Füße.

Die Syntax des Geodistenbefehls lautet wie folgt:

Geodist Geospatial_Index/Key Member_1 Member_2 [M | Km | Ft | Mi]

Es gibt die Entfernung als Doppelwert zurück. Der Wert hängt von dem Gerät ab, das Sie angegeben haben. Immer wenn der Befehl auf nicht existierende oder fehlende Mitglieder trifft, gibt es NULL zurück.

Anwendungsfall - den Abstand zwischen zwei Attraktionen erhalten

Nehmen wir an, dass ein Touristenunternehmen eine mobile Anwendung eingeführt hat, um die Details der Attraktionen in einem bestimmten Land zu finden. Die mobile Anwendung verwendet den Redis -Datenspeicher im Backend, um die Details von Attraktionen einschließlich ihrer Geospatial -Koordinaten zu speichern.

Sie haben die Redis -Hashes verwendet, um die grundlegenden Informationen zu den Attraktionen zu speichern. Für den Teil des Geolocation Coordinate -Teils verwenden sie Redis Geospatial -Datenstruktur.

Lassen Sie uns einen neuen Geospatial Index erstellen, der zwei Mitglieder enthält.

Geoadd Attraktionen: Newyork 23.596920 67.104923 "Lazy Mountain" 134.694013 45.394022 "Sabra River"

Jetzt die "fauler Berg" Und "Sabra RiverMitglieder sollten in einem sortierten Set gespeichert werden, auf das vom Schlüssel verwiesen wird Attraktionen: Newyork.

Verwenden wir den Geodistenbefehl, um den Abstand zwischen den beiden oben genannten Mitgliedern zu berechnen. Standardmäßig sollte es die Entfernung in Metern zurückgeben.

Geodistische Attraktionen: Newyork "Lazy Mountain" "Sabra River"

Wie Sie sehen können, haben wir den Geospatial Index als angegeben Attraktionen: Newyork. Als nächstes haben wir die beiden Mitglieder als Saiten.

Wie erwartet wird die Ausgabe in Metern zurückgegeben. Der Doppel -Datentyp wurde verwendet, um den Abstand darzustellen.

Die Entfernung in Kilometern abrufen

Es ist möglich, auch die obere Entfernung in Kilometern abzurufen. Sie müssen nur das optionale Argument übergeben. 'km' folgendermaßen:

Geodistische Attraktionen: Newyork "Lazy Mountain" "Sabra River" KM

Ausgang

Rufen Sie die Entfernung in Meilen ab

Das Argument "Mi" sollte angegeben werden, um den Abstand zwischen den angegebenen Mitgliedern in Meilen zu berechnen.

Geodistische Attraktionen: Newyork "Lazy Mountain" "Sabra River" Mi

Ausgang

Die Entfernung in den Füßen abrufen

Wann immer Sie die Anzahl der Fuß von einem Mitglied zum anderen kennen müssen, geben Sie einfach die Einheit als 'an' anft''.

Geodistische Attraktionen: Newyork "Lazy Mountain" "Sabra River" ft

Ausgang

Wenn Sie nicht existierende Mitglieder angeben, sollte der Geodistenbefehl NULL zurückgeben. Geben wir zwei nicht existierende Mitglieder wie folgt an:

Geodistische Attraktionen: Newyork "Lazy" "Sabra"

Ausgang

Wenn der angegebene Schlüssel nicht vorhanden ist, gibt der Befehl NULL zurück.

Geodistische Attraktionen: Washington "Lazy Mountain" "Sabra River" ft

Im obigen Beispiel die Attraktionen: Washington Schlüssel ist nicht verfügbar. Der Ausgang ist also null, wie im Folgenden gezeigt:

Abschluss

Zusammenfassend wurde der Redis-Geospatial-Datentyp eingeführt, um Koordinaten von Geo-Lokationen zu halten. Wie bereits erwähnt, werden die Längen- und Breitengradwerte für ein bestimmtes Mitglied gespeichert. Dies wird als sortierter Set im Speicher dargestellt. Es stehen mehrere Befehle zur Verfügung, um an Geospatial -Datentypen zu arbeiten. Der Geodist ist eines der nützlichen Befehle, die auf Geospatial -Indizes arbeiten, um den Abstand zwischen angegebenen Mitgliedern zurückzugeben. Wie im Abschnitt "Einführung" erläutert, wird die Entfernung standardmäßig in Metern zurückgegeben. Der Befehl geodistischer Befehl akzeptiert optionale Argumente, um die Entfernung in anderen Einheiten wie Kilometer, Füße und Meilen zurückzugeben.