Login
Login-Name Passwort


 
Newsletter
Werbung

Do, 27. Oktober 2016, 15:00

Neues von Redis

Redis ist nun bei Version 3.2 angekommen. Dieser Artikel beschreibt die Neuerungen des performanten Key-Value-Stores.

Ein früherer Artikel befasste sich vor vier Jahren ausführlich mit Redis 2.4, ein nachfolgender stellte einige Neuerungen bis Version 2.8.5 vor. Inzwischen ist Redis bei Version 3.2 angekommen. Dieser Artikel beschreibt die Neuerungen des performanten Key-Value-Stores.

Inhaltlich sind die oben genannten Artikel immer noch gültig, in den neueren Versionen von Redis wurden »nur« Ergänzungen und Erweiterungen vorgenommen. Auch die Installation funktioniert noch genauso, wie seinerzeit beschrieben.

Hinweis: Dieser Artikel wurde auf Basis von Redis 3.2.3 geschrieben. Der Redis-Prompt in diesem Artikel ist 127.0.0.1:6379> und muss nicht mit eingegeben werden.

Clusterfähigkeit

Eines der Hauptentwicklungsziele für Redis in der Version 3 war, dass die Datenbank clusterfähig wird. Diese Funktionalität war dann auch in der ersten stabilen Version 3.0.0, welche am 1.4.2015 offiziell erschien, vorhanden. Da der Clusterbetrieb für den »Hausgebrauch« von Redis eher uninteressant ist, wird darauf hier im Artikel nicht weiter eingegangen. In der offiziellen Dokumentation von Redis findet man aber ein ausführliches Tutorial zum Clusterbetrieb von Redis.

Geodaten

Mit der Redis-Version 3.2 erhielt die Datenbank die Fähigkeit, mit Geodaten umzugehen und Dinge wie Umkreissuche und Abstandsberechnung durchzuführen. Die Geodaten verwenden intern den Datentyp »sorted set«. Geodaten bestehen immer aus den drei Angaben Längengrad, Breitengrad und Name, wobei Länge und Breite in Dezimalgrad angegeben werden müssen. Der Name ist ein frei wählbarer String.

Im folgenden Beispiel werden die Koordinaten dreier Städte im Ruhrgebiet in Redis unter dem Schlüssel coords gespeichert:

127.0.0.1:6379> GEOADD coords 7.2162363 51.4818445 "Bochum"
(integer) 1
127.0.0.1:6379> GEOADD coords 7.0857172 51.517744 "Gelsenkirchen" 6.7623293 51.4344079 "Duisburg"
(integer) 2

Wie im zweiten Befehl des Beispiels zu sehen ist, kann man auch die Daten für mehrere Punkte gleichzeitig hinzufügen.

Mit dem Befehl GEODIST kann man den Abstand zwischen zwei Punkten ermitteln:

127.0.0.1:6379> GEODIST coords Bochum Duisburg
"31896.6070"

Der Abstand zwischen den für Bochum und Duisburg hinterlegten Koordinaten beträgt also 31896,6070 Meter. Redis geht für die Berechnung davon aus, dass die Erde exakt kugelförmig ist und es kommt die trigonometrische Funktion »Semiversus« (englisch: »Haversine«) zur Berechnung des Abstands zum Einsatz. Dies ist für »normale« Abstandsberechnung (wie z.B. »Wie weit sind zwei Städte entfernt?«) vollkommen ausreichend, aber eben nicht völlig exakt. Besonders dann nicht, wenn eine der Koordinaten nahe an einem der Pole liegt. Die Dokumentation von Redis zur Funktion GEODIST gibt eine maximale Ungenauigkeit von 0,5% an.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung