Zum Inhalt springen

Redis

Aus Foxwiki

Redis - In-Memory-Datenbank mit einfacher Schlüssel-Werte-Datenstruktur

Beschreibung

Redis ist eine In-Memory-Datenbank mit einer einfachen Schlüssel-Werte-Datenstruktur () und gehört zur Familie der NoSQL-Datenbanken (ist also nicht relational). Redis ist laut einer Erhebung von DB-Engines.com der verbreitetste Schlüssel-Werte-Speicher.

Die einfache Struktur der Datenbank eignet sich weniger für komplexe Datenstrukturen, die überwiegend in der Datenbank selbst abgebildet werden sollen. Dafür ist der große Vorteil von Redis, dass es schneller ist als relationale Datenbanken wie z. B. MySQL.

Ab Version 2.6 werden Lua-Skripte unterstützt. Ab Version 3.0 ist es möglich, Redis verteilt in Rechnerverbünden zu nutzen. Die Version 3.2 führt eine GEO-API für Abfragen anhand von Längen- und Breitengrad ein.

Redis bietet Persistenz durch automatisiertes, regelmäßiges Abspeichern oder per Protokolldatei, wodurch bei entsprechender Konfiguration auch eine ACID-konforme Dauerhaftigkeit erreichbar ist.

Die Softwareveröffentlichungen bis 2024 standen unter der 3-Klausel-BSD-Lizenz. Am 20. März 2024 kündigte der Hersteller von Redis an, ab Version 7.4 ein duales Lizenzmodell mit der Redis Source Available License und Server Side Public License einzuführen Die Server Side Public License wird von der Open Source Initiative nicht als Open-Source-Lizenz anerkannt. Eine Woche nach Ankündigung des Lizenzwechsels initiierte die Linux Foundation einen Fork mit dem Namen Valkey mit dem Ziel, das Projekt unter der bisherigen 3-Klausel-BSD-Lizenz fortzuführen.

Name

Der Name Redis entstand als Abkürzung für remote dictionary server.

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Status

systemctl status redis
Log
cat /var/log/redis/redis-server.log

Speicherbedarf

Redis ist eine In-Memory-Datenbank, die Daten primär im Arbeitsspeicher (RAM) speichert, um extrem hohe Geschwindigkeiten zu ermöglichen. Der Speicherbedarf hängt direkt von der Datenmenge ab, wobei Speicheroptimierungen durch Datentypen, ziplist-Kompression und maxmemory-Richtlinien (wie LRU) zur Entfernung alter Daten essenziell sind, um RAM-Kosten zu kontrollieren. Wichtige Aspekte zum Speicherbedarf:

In-Memory-Natur
Da Redis Daten im RAM hält, ist der Speicherbedarf direkt proportional zur Menge der gespeicherten Schlüssel-Wert-Paare.
Datentypen
Die Wahl der Datentypen beeinflusst den Speicherverbrauch. Kleinere Datenstrukturen (Hashes, Listen, Sets) können durch spezielle Kompressionseinstellungen (z.B. hash-max-ziplist-entries) sehr effizient gespeichert werden.
Maximierung des Speichers
Über maxmemory in der redis.conf wird festgelegt, wie viel RAM Redis maximal nutzen darf. Wird dieser erreicht, greifen Eviction-Richtlinien (wie allkeys-lru), um Platz zu schaffen.
Persistenz
Auch wenn Daten auf der Festplatte (RDB-Snapshots, AOF) gesichert werden, muss der gesamte Datensatz für den Betrieb in den RAM passen.
Schätzung
Als Faustregel gilt: Je mehr Datensätze und je größer die Werte, desto höher der RAM-Verbrauch. Eine genaue Analyse der Datenstruktur ist für die Kapazitätsplanung notwendig.

Für maximale Leistung bei begrenztem Speicher wird empfohlen, Redis als Cache zu konfigurieren, bei dem nicht benötigte Daten automatisch entfernt werden.

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Projekt

  1. https://redis.io
  2. GitHub Repository
  3. GUI für Redis-Server
  1. https://de.wikipedia.org/wiki/Redis
  2. https://www.informatik-aktuell.de/betrieb/datenbanken/redis-im-ueberblick.html
  3. https://www.heise.de/developer/artikel/NoSQL-Key-Value-Datenbank-Redis-im-Ueberblick-1233843.html