Was ist Redis? Die Datenbank vorgestellt

In den meisten IT-Projekten werden relationale Datenbanken eingesetzt. Egal, ob beim Webdesign oder bei der Software-Entwicklung: Die auf Tabellen basierenden Datenbanken liefern in den meisten Szenarien gute und stabile Ergebnisse. Aber sind sie immer die perfekte Wahl? In den vergangenen Jahren kamen immer mehr neue Datenbanktypen auf den Markt, die sich durch ihre ganz eigenen Vorzüge auszeichnen. Sogenannte NoSQL-Datenbanken sind für einige Projekte sehr empfehlenswert. Redis liefert eine solche Database. Wie funktioniert der Datenspeicher und welche Vorteile bringt Redis?

Managed Database von IONOS

Datenbank-Services ohne Aufwand. Maßgeschneidert auf Ihre Bedürfnisse und individuell anpassbar!

Hochverfügbar
Sicher
Individuell

Redis-Datenbanken erklärt

Der Name Redis steht für Remote Dictionary Server. Diese Art von Server eignet sich als schneller Datenspeicher. Redis bietet als Datenbank-Management-System (DBMS) zugleich eine In-Memory-Datenbank und einen Key-Value-Store.

  • In-Memory-Datenbank: Bei solchen Datenbanken speichert das DBMS alle Daten direkt im Arbeitsspeicher. Das sorgt für sehr kurze Zugriffszeiten – auch bei großen, unstrukturierten Datenmengen.
  • Key-Value-Store: Auch Schlüssel-Wert-Datenbanken überzeugen mit hoher Performanz und lassen sich dank der einfachen Struktur leicht skalieren. Zu jedem Eintrag wird ein Schlüssel erstellt, über den die Information dann wieder aufgerufen werden kann.

Alle Daten liegen also bei einem Redis-Server nicht auf der Festplatte, sondern im Arbeitsspeicher. Durch diese Entscheidung ist Redis sowohl Cache als auch Speicher: Ob die Informationen dauerhaft in der Datenbank liegen oder nur kurzzeitig, macht für Redis keinen Unterschied.

Jeder Eintrag in der Datenbank erhält einen Schlüssel. Über diese Schlüssel können Daten dann wieder ganz einfach abgerufen werden. Die Einträge sind also nicht untereinander verknüpft und müssen daher auch nicht über mehrere Tabellen hinweg angefordert werden. Die Informationen stehen direkt zur Verfügung.

Mit der Ablage im Arbeitsspeicher geht aber auch die Gefahr einher, bei einem Serverabsturz sämtliche Daten zu verlieren. Um dies zu verhindern, kann Redis entweder alle Daten regelmäßig auf Backup-Festplatte duplizieren oder alle Befehle, die für eine Rekonstruktion nötig sind, in eine Log-Datei speichern.

Die typische Datenstruktur von Redis sind Strings, also einfache Zeichenfolgen. Auch die Schlüssel (der eine Teile des Key-Value-Stores) sind als String realisiert. Das System kann aber auch mit weiteren Datenstrukturen umgehen:

  • Strings: eine Zeichenfolge mit einer Maximalgröße von 512 MB
  • Hashes: Eintrag mit mehreren Feldern
  • Lists: Sammlung aus Strings, die nach der Reihenfolge der Eintragung sortiert ist
  • Sets: eine unsortierte Sammlung aus Strings
  • Sorted Sets: eine vom Nutzer sortierte Sammlung von Strings
  • Bitmaps: Sammlung an Operationen auf Bit-Ebene
  • HyperLogLogs: Schätzung auf Basis von eindeutigen Werten
  • Streams: Liste von Strings oder komplexen Key-Value-Paaren

Da Redis Open Source ist, arbeiten viele Entwickler an Erweiterungen für das DBMS. Diese Module erweitern die Funktionalität der ansonsten sehr schlanken Datenbank und passen die Software für spezifische Einsatzgebiete an.

Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.
Fakt

Redis ist Open Source und kann von jedem kostenlos eingesetzt werden. Der Hauptsponsor von Redis ist das Unternehmen Redis Labs. Dieses bietet kostenpflichtige Cloud-Versionen der Software an.

Für welche Anwendungsfelder ist Redis am besten geeignet?

Das Standardszenario von Redis ist ein Cache. Hierfür verwendet beispielsweise auch Twitter die Datenbank: Die eigene Timeline bei dem Nachrichtendienst wird beispielsweise durch einen Redis-Cache realisiert. Grundsätzlich besteht die Timeline aus einer Liste, die dank Redis schnell abgerufen werden kann und inkrementell erweiterbar ist.

Aber auch für andere Zwecke wird Redis eingesetzt: Durch die hohe Zugriffsgeschwindigkeit ist eine Redis-Datenbank beispielsweise perfekt für Messaging-Dienste oder Chat-Rooms geeignet. Neue Einträge lassen sich in Echtzeit darstellen. Auch Listen, die kurzfristig geändert werden müssen, werden mit Redis umgesetzt.

Tipp

Sie sind von Redis überzeugt und möchten die Datenbank für Ihr Projekt einsetzen? In unserem einfachen Redis-Tutorial erfahren Sie mehr über die ersten Schritte.

Vor- und Nachteile von Redis

Redis ist immer dann eine gute Wahl, wenn einfache Daten schnell zur Verfügung stehen müssen. Durch die standardmäßige Replikation der Daten wird die Lesegeschwindigkeit sogar noch erhöht: Daten können von unterschiedlichen Instanzen abgefragt werden. Auch die Skalierung klappt mit Redis sehr gut – sowohl horizontal als auch vertikal. Sollte der Arbeitsspeicher des Redis-Servers nicht ausreichen, hat die Software eine eingebaute Virtual-Memory-Verwaltung. Diese lagert Daten auf die Festplatte aus. Redis selbst ist in C geschrieben. Es gibt aber Clients für fast jede Programmiersprache.

Wenn man allerdings mit komplexen Daten arbeitet, die auch ebenso umfangreiche Abfrageoptionen benötigen, ist Redis nicht die richtige Wahl. Daten können innerhalb von einem Key-Value-Store prinzipiell immer nur über ihre Schlüssel angesprochen werden. Außerdem braucht Redis (ebenso wie andere In-Memory-Datenbanken) extrem viel Arbeitsspeicher, was kostspielig sein kann. Man muss zudem damit rechnen, mehr Speicher zur Verfügung zu stellen, als die Daten eigentlich belegen.

Fazit

Immer dann, wenn Daten schnell geschrieben und abgefragt werden müssen, bietet Redis eine gute Alternative zu klassischen relationalen Datenbanken. Ist man allerdings nicht auf Geschwindigkeit angewiesen und sucht eine Datenbank für komplexere Aufgaben, sollte man beim traditionellen Ansatz bleiben.