Docker/Datenbank/Redis: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== Redis == Redis ist ein leichtgewichtiger Datenbankserver, der einen Key-Value-Speicher im flüchtigen Arbeitsspeicher verwaltet * Wegen der hohen Geschwindigkeit bei Leseund Schreibzugriffen wird Redis gern für Sessiondaten bei Webanwendungen verwendet * Außerdem kommt Redis häufig in der Funktion eines Full-Page-Cache zum Einsatz, was die Geschwindigkeit von datenbanklastigen Anwendungen merklich beschleunigt * Da Redis Datentypen wie Listen, Sets…“ |
K Dirkwagner verschob die Seite Docker/Buch/10 Datenbanken/Redis nach Docker/Datenbank/Redis |
(kein Unterschied)
| |
Aktuelle Version vom 11. November 2026, 12:52 Uhr
Redis
Redis ist ein leichtgewichtiger Datenbankserver, der einen Key-Value-Speicher im flüchtigen Arbeitsspeicher verwaltet
- Wegen der hohen Geschwindigkeit bei Leseund Schreibzugriffen wird Redis gern für Sessiondaten bei Webanwendungen verwendet
- Außerdem kommt Redis häufig in der Funktion eines Full-Page-Cache zum
Einsatz, was die Geschwindigkeit von datenbanklastigen Anwendungen merklich beschleunigt
- Da Redis Datentypen wie Listen, Sets und Hashtables unterstützt, wird es auch gern im Zusammenhang mit Warteschlangen oder Ranglisten verwendet
Bei unserem ersten Versuch starten wir das offizielle Redis-Image vom Docker Hub
docker run -d --name rd redis
Der Container mit dem Namen rd läuft im Hintergrund
- Starten Sie nun das Kommandozeilenprogramm redis-cli im Redis-Container, um die Datenbank abzufragen
docker exec -it rd redis -cli
127.0.0.1:6379 > get meinKey ( nil )
127.0.0.1:6379 > set meinKey "Hello world " OK
127.0.0.1:6379 > get meinKey " Hello world "
Mit get und set können Sie Daten in Redis abfragen beziehungsweise speichern Unsere erste Abfrage nach dem Wert für den Schlüssel meinKey wird mit (nil) beant-
wortet
- Das ist wenig verwunderlich, denn diesem Schlüssel ist noch kein Wert zugewiesen
- Nachdem wir den Wert Hello world mit set gespeichert haben, können wir ihn auch erfolgreich abfragen
Redis-Volumes Redis ist zwar eine In-Memory-Datenbank, die Inhalte können aber trotzdem auf die Festplatte ausgelagert werden, damit sie auch nach einem Serverneustart zur Verfü- gung stehen
- Binden Sie dazu ein Volume unter /data ein, Redis kümmert sich um die
Speicherung beim Ausschalten
Redis-Replikation mit docker compose Mit dem Begriff Datenbankreplikation verbindet man oft eine aufwendige Installation oder eine komplexe Konfiguration
- Redis und Docker zeigen uns, dass das nicht so sein muss
- Das Setup für die Installation einer Master-Slave-Replikation könnte nicht einfacher sein
- Datei : db / redis / compose
- yaml services
rd - master
image : redis :7
rd - slave
image : redis :7 command : redis -server --slaveof rd - master 6379
In der compose.yaml-Datei werden zwei Services definiert: rd-master und rdslave
- Beide verwenden das aktuelle redis:7-Image vom Docker Hub
Der Unterschied zwischen den beiden Services besteht nur im Startkommando des Containers
- Während der Master die Datenbank regulär startet, übergibt der Slave den
Parameter --slaveof rd-master 6379
- Sie haben natürlich gleich erkannt, dass es sich dabei um den Host-Namen (im docker compose -Netzwerk) und den Port des Masters handelt
Öffnen Sie nun zwei Terminalfenster nebeneinander
- In einem Fenster verbinden
Sie sich mit dem Master, im zweiten mit dem Slave
- Führen Sie dann am Slave die
SUBSCRIBE -Funktion von Redis aus, die auf Nachrichten zu einem bestimmten Thema wartet
docker compose exec rd - slave redis - cli
127.0.0.1:6379 > SUBSCRIBE meinKana l Reading messages ... ( press Ctrl - C to quit )
1) " subscribe " 2) " meinKanal " 3) ( integer ) 1
Am Master führen Sie das PUBLISH-Kommando mit den Parametern meinKanal (der Kanal für diese Nachricht) und einer Zeichenkette als Nachricht aus
docker compose exec rd - master redis - cli
127.0.0.1:6379 > PUBLISH meinKana l "Testnach r i c ht vom Master " ( integer ) 0
Sie sollten jetzt im Terminalfenster mit der Slave-Verbindung die Nachricht sehen
265