Docker/Datenbank/Redis

Aus Foxwiki
Version vom 11. November 2026, 12:52 Uhr von Dirkwagner (Diskussion | Beiträge) (Dirkwagner verschob die Seite Docker/Buch/10 Datenbanken/Redis nach Docker/Datenbank/Redis)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

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
  1. 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