Redis
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
Links
Projekt
Weblinks
- https://de.wikipedia.org/wiki/Redis
- https://www.informatik-aktuell.de/betrieb/datenbanken/redis-im-ueberblick.html
- https://www.heise.de/developer/artikel/NoSQL-Key-Value-Datenbank-Redis-im-Ueberblick-1233843.html