Redis – Mehr als ein Key-Value-Store
Hashes
Ein weiterer Datentyp sind Hashes. Hier besteht der Wert wiederum aus Schlüssel-Werte-Paaren. Die maximale Anzahl der Hashes pro Schlüssel liegt bei komfortablen 232 (über 4 Milliarden), was mehr als genug ist.
Befehle für Hashes erkennt man daran, dass ihnen ein H
vorangestellt ist. Im folgenden Beispiel werden zwei Schlüssel mit Hashes als Wert angelegt. Als erstes dreimal einzeln:
redis 127.0.0.1:6379> HSET Winamp type Audioplayer (integer) 1 redis 127.0.0.1:6379> HSET Winamp platform Windows (integer) 1 redis 127.0.0.1:6379> HSET Winamp license closed (integer) 1
Und jetzt drei mit einem Befehl:
redis 127.0.0.1:6379> HMSET Banshee type Audioplayer platform Linux license free OK
Man kann auch alle Hashes zu einem Schlüssel abfragen:
redis 127.0.0.1:6379> HGETALL Winamp 1) "type" 2) "Audioplayer" 3) "platform" 4) "Windows" 5) "license" 6) "closed"
Und die gezielte Abfrage von nur einem bestimmtem Wert eines Hashs geht mittels:
redis 127.0.0.1:6379> HGET Banshee platform "Linux"
Möchte man die Anzahl der Hashes zu einem Schlüssel abfragen, nutzt man HLEN
:
redis 127.0.0.1:6379> HLEN Banshee (integer) 3
Neben HSET
kann man mit HDEL
einen Hash-Schlüssel auch wieder löschen:
redis 127.0.0.1:6379> HDEL Banshee platform (integer) 1
Fragt man nun alle Hash-Werte ab, fehlt der eben gelöschte Wert für die Plattform:
redis 127.0.0.1:6379> HGETALL Banshee 1) "type" 2) "Audioplayer" 3) "license" 4) "free"
Redis hält noch mehr Befehl für den Umgang mit Hashs bereit. Diese können über den Aufruf von help @hash
angesehen werden.