Redis (kurz für Remote Dictionary Server) ist ein OpenSource Datenbank-System. Durch seine No-SQL-Beschaffenheit widerspricht es dem gängingen Konzept einer relationalen Datenbank, mit der via SQL kommuniziert wird. Redis gehört zur Familie der In-Memory-Datenbanken. Das bedeutet, dass sich der Datenbestand im Hauptspeicher befindet.
Daten werden durch eine einfache Schlüssel-Wert-Struktur erfasst und in Hash-Tables organisiert. Somit wird ein Wert mit einem Schlüssel identifiziert. Die Datenbank funktioniert somit wie ein großes Wörterbuch.
Da sich alle Daten im Hauptspeicher befinden, können Zugriffe auf indizierte Daten sehr schnell erfolgen. Laut Wikipedia-Artikel können mit Redis bis zu ca. 100.000 Schreibvorgänge und ca. 80.000 Lesevorgänge pro Sekunde durchgeführt werden. Diese Werte liegen deutlich über denen gängiger relationalen Datenbanksystemen wie MySQL. Auch auf herkömmlicher Hardware (z.B. gängige Desktop-PCs) ist dieser Geschwindigkeitsvorteil merkbar.
Die Schlüssel-Wert-Architektur eignet sich prinzipiell für einfache Datenstrukturen. Für die Abbildung komplexerer Strukturen ist Redis nur bedingt geeignet; dazu müssen diese aufwändig auf die Schlüssel-Wert-Struktur abgebildet werden. Ein größerer Nachteil liegt im Fehlen der Persistenz. Da sich alle Daten im Hauptspeicher befinden gehen sie prinzipiell verloren, wenn der Redis-Server oder das ganze System neugestartet werden. Allerdings bietet Redis die Möglichkeit den Datenbestand beispielsweise zyklisch auf die Festplatte zu sichern. Für ACID-konforme Systeme ist Redis jedoch nicht geeignet.
Redis ist OpenSource und kann auf der offiziellen Projekt-Seite heruntergeladen werden. Im Folgenden wird die Installation auf linux-basierten Systemen mittels Makefile beschrieben.
Nachdem das Archiv heruntergeladen und entpackt wurde (z.B. nach /opt/redis
) kann es mittels
make all
kompiliert werden. Anschließend stehen im Verzeichnis src/ die Programme redis-server und redis-cli
zur Verfügung. Um den Server bzw. CLI-Client bequem starten zu können, bietet sich die Erstellung eines Shell-Skripts an:
/usr/sbin/redis-server
#!/bin/bash cd /opt/redis/src ./redis-server &
Nachdem das Skript mit
chmod +x /usr/sbin/redis-server
(als root) ausführbar gemacht wurde, kann der Redis-Server mittels redis-server
gestartet bzw. mit killall redis-server
beendet werden.
/usr/sbin/redis-cli
#!/bin/bash cd /opt/redis/src ./redis-cli
Ebenfalls mit
chmod +x /usr/sbin/redis-cli
(als root) kann der CLI-Client ausführbar gemacht und mit redis-client
gestartet werden.
Der Umgang mit dem interaktiven CLI-Client wird im kommenden Abschnitt erklärt.
Mit redis-cli
kann der interaktive CLI-Client gestartet werden. Wer sich zunächst erst an Redis ausprobieren möchte, ohne etwas zu installieren, kann Try Redis online ausprobieren. Redis unterstützt folgende Datentypen: