Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Redis: In-Memory Data Store einfach erklärt!

Redis ist eine Key-Value basierte NoSQL Datenbank, welche Daten In-Memory, also im Arbeitsspeicher (RAM), ablegt. Dieser Datenspeicher gehört heutzutage zu den am Häufigsten genutzten Schlüsselwertdatenbanken und wird beispielsweise für Caching eingesetzt. Die Abkürzung steht für Remote Dictionary Server.

Was sind NoSQL Datenbanken?

NoSQL („Not Only SQL“) beschreibt Datenbanken, welche im Gegensatz zu SQL nicht-relational Sind, also unter anderem nicht in Tabellen organisiert werden können. Diese Ansätze lassen sich auch über verschiedene Computersysteme verteilen und sind dadurch höchst skalierbar. NoSQL Lösungen sind deshalb sehr interessant für viele Big Data Anwendungen.

Die Datenbanken zeichnen sich vor allem durch zwei Kriterien aus, die sehr weit gefasst sind. Zum einen werden Daten nicht in Tabellen gespeichert und zum anderen ist die Abfragesprache nicht SQL, was auch durch den Namen Not Only SQL deutlich wird.

Redis gehört den sogenannten Key-Value Stores an, die Kategorie innerhalt der NoSQL Datenbanken darstellen. Sie sind eine sehr einfach Datenstruktur in der jeder Datensatz als Wert mit einem einzigartigen Schlüssel abgespeichert ist. Über diesen Schlüssel können die Informationen gezielt abgefragt werden.

NoSQL Datenbankkategorien

Wie funktioniert Redis?

Redis wurde entwickelt um einen zuverlässigen Datenspeicher zu haben, der in kurzer Zeit Informationen speichert und auch wieder ausgeben kann. Das Besondere an dieser Datenbank ist die Kombination aus dem bereits genannten Key-Value-Store und dem In-Memory Speicher.

Eine In-Memory Datenbank speichert die Daten auf dem Arbeitsspeicher (RAM) des Computers ab, statt sie auf eine Festplatte, wie HDD oder SSD, zu schreiben. Das beschleunigt den Prozess beim Schreiben und Lesen um ein Vielfaches, geht jedoch zu Lasten der Datensicherheit und der Kosten. Arbeitsspeicher ist in der Regel teurer als vergleichbarer Festplattenspeicher und wird beim Herunterfahren der Maschine oder bei einem Systemabsturz komplett gelöscht.

Jeder Eintrag in diesem Speicher wird ein eindeutiger Schlüssel zugewiesen über welchen man auf den Datensatz zugreifen kann. Da der Arbeitsspeicher von Computer meist ein begrenztes Gut ist, muss mit diesem sorgsam umgegangen werden. Dazu gehört auch, dass besondere Datenstrukturen genutzt werden, die möglichst wenig Speicherplatz verbrauchen.

In den meisten Fällen werden Strings als Datenstruktur genutzt und abgespeichert. Darüber hinaus gibt es auch andere Datentypen, welche Redis verarbeiten kann (vgl. IONOS (2020)):

  • Strings: Zeichenketten mit einer maximalen Speichergröße von 512 MB.
  • Hashes: Mapping zwischen einer Hash Repräsentation und einem zugehörigen String.
  • Listen: Eine Sammlung von Strings, welche in einer Liste abgespeichert wird.
  • Bitmaps: Kompakte Repräsentation für boolesche Werte.
  • Streams: Speziell für Redis entwickelte Art eines Log-Files.

Für welche Anwendungen wird Redis genutzt?

Die Anwendungsfälle von Redis sind zwar stark begrenzt, jedoch sind in diesen Bereich aufgrund ihrer vorteilhaften Eigenschaften kaum zu verdrängen. Wie bereits erwähnt, wird Redis vor allem für das Caching genutzt, wie beispielsweise bei Twitter. Unter Caching versteht man ganz allgemein das Abspeichern von Zwischenständen, damit zukünftige Abfragen schneller ablaufen können. Im Fall von Twitter könnte das beispielsweise bedeuten, dass bereits geladene Profilbilder oder Tweets im Cache vorgehalten werden, damit sie bei einer erneuten Abfrage schneller vorliegen.

Diese Funktionalitäten sind vor allem auch in Chats oder Nachrichtenservices von Vorteil, da die neuen Nachrichten nahezu in Echtzeit an den User geschickt werden können.

Was sind die Vorteile von Redis?

NoSQL Datenbanken haben einige Vorteile gegenüber traditionellen, relationalen Datenbanken. Dazu zählen unter anderem die bessere Performance bei großen Datenmengen und die Verteilung auf mehrere Systeme. Redis kann darüber hinaus mit den folgenden Vorteilen punkten:

  • Schnelle Erreichbarkeit durch In-Memory Speicher
  • Unterstützung für die meisten, gängigen Programmiersprachen
  • Mithilfe von verschiedenen Tools bietet Redis eine hohe Benutzerfreundlichkeit
  • Daten können auch über mehrere Cluster verteilt werden und auf anderen Computern im Arbeitsspeicher gehalten werden
  • Open-Source

Welche Nachteile hat man mit Redis?

Wie bei den meisten Datenbanken, hat auch die Nutzung von Redis einige Nachteile, die man vor dessen Implementierung erst abwägen muss. Neben der Gefahr des Datenverlustes bei Systemabsturz, spielen auch die folgenden Punkte eine Rolle:

  • Arbeitsspeicher ist ein teurer Hardware Bestandteil
  • Daten können nur über Schlüssel angesprochen werden
  • Komplexere Datensätze können nur schwierig abgebildet werden

Das solltest Du mitnehmen

  • Redis ist Schlüsselwertspeicher, der Daten In-Memory, also im Arbeitsspeicher, ablegt.
  • Durch die schnellen Schreibe- und Leseprozesse eignet sich die Datenbank gut für Caching Anwendungen oder bei der Speicherung von Chatnachrichten.

Andere Beiträge zum Thema Redis

  • Bei Hosttest findest Du noch zusätzliche Informationen zu Redis Datenbanken.


This post first appeared on Data Basecamp, please read the originial post: here

Share the post

Redis: In-Memory Data Store einfach erklärt!

×

Subscribe to Data Basecamp

Get updates delivered right to your inbox!

Thank you for your subscription

×