Seitenleiste

Community

SQL

Grundlagen

Datenbanksysteme

Client/Server

Eingebettet

Remote Dictionary Server

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.

Vorteile

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.

Nachteile

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.

Installation

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.

Interaktiver Client

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:

String

List

Hash

Set

Sorted Set

Verwendung

Beispiel-Datenbank

Integration in C++

Integration in PHP