Detaillierte Erläuterung der dauerhaften Speicherung von Redis unter Docker

Detaillierte Erläuterung der dauerhaften Speicherung von Redis unter Docker

In diesem Kapitel beginnen wir mit dem Betrieb von Redis im Spring Boot-Projekt unter Docker

Vorbereitung:

(1) Erstellen Sie einen Ordner: usr/local/work/share

(2) Ziehen Sie das Projekt, bei dem es sich um ein gepacktes JAR-Paket handelt

(3) Legen Sie das extrahierte JAR-Paket in den soeben erstellten Ordner und erstellen Sie eine Datei mit dem Namen docker-compose.yml

(4) Erstellen Sie einen Datenordner im temporären Verzeichnis

(5) Und schreiben Sie den folgenden Inhalt in die Datei docker-compose.yml:

Redis:
 Bild: redis:3
 Häfen:
 - „6379:6379“
 Bände:
 – /tmp/Daten:/Daten
 - Java:
 Bild: bolingcavalry/springbootrun:0.0.1
 Links:
 - redis: redishost
 Bände:
  – /usr/local/work/share:/usr/Downloads
 Häfen:
 - „8080:8080“
 tty: wahr

Hier erklären wir nur die Volumes. Einfach ausgedrückt werden die im Redis-Container in Docker gespeicherten Daten im lokalen Verzeichnis gespeichert.

Offizielle Stellungnahme:

Der Redis-Port 6379 wurde von Redis vorkonfiguriert und wird vom Container dem Host zugänglich gemacht. In der Datei docker-compose.yml wird er vom Host der Außenwelt zugänglich gemacht, sodass jeder Knoten zum Redis Desktop Manager gehen und diese Redis-Instanz verwalten kann. Darüber hinaus gibt es in der Redis-Spezifikation mehrere Dinge, die dafür sorgen, dass Daten zwischen Bereitstellungen dieses Stacks bestehen bleiben: Redis wird immer auf einem Manager ausgeführt und verwendet daher immer dasselbe Dateisystem. Redis greift innerhalb des Containers auf ein beliebiges Verzeichnis im Dateisystem des Hosts als /data zu und dort speichert Redis seine Daten.

Zusammengefasst geht es hier darum, die „Quelle der Wahrheit“ im physischen Dateisystem des Hosts für Ihre Redis-Daten zu erstellen. Ohne dies speichert Redis seine Daten im Dateisystem des Containers im Verzeichnis /data. Dieses Verzeichnis wird gelöscht, wenn der Container erneut bereitgestellt wird. Diese Quelle der Wahrheit besteht aus zwei Komponenten: Platzierungsbeschränkungen für den Redis-Dienst, die sicherstellen, dass er immer denselben Host verwendet; und Volumes, die erstellt werden, damit Container auf /data (auf dem Host) als /data (innerhalb des Redis-Containers) zugreifen können. In /data auf einem bestimmten Host gespeicherte Dateien bleiben bestehen, während Container kommen und gehen, wodurch die Kontinuität gewahrt wird.

2. Starten Sie den Container

Nachdem Sie den obigen Inhalt in docker-compose.yml geschrieben haben, führen Sie den Befehl docker-compose up -d in dem Verzeichnis aus, in dem sich die Datei befindet, um zwei Container zu starten. Führen Sie dann docker ps aus, um die Containerinformationen wie folgt anzuzeigen:

Nachdem das JAR-Paket heruntergeladen wurde, wird es im lokalen Verzeichnis /usr/local/work/share abgelegt. Dieses Verzeichnis wird dem /usr/Downloads des Containers zugeordnet, sodass wir nach dem Aufrufen des Containers direkt auf diese Datei zugreifen können.

3. JAR-Paket bereitstellen

Führen Sie den folgenden Befehl aus, um den laufenden Springboot-Container aufzurufen:

docker exec -it share_java_1 /bin/bash

Geben Sie das Verzeichnis /usr/Downloads ein und Sie können die Dateien sehen:

redistempletedemo-0.0.1-SNAPSHOT.jar

Führen Sie den folgenden Befehl aus, um den Container zu starten:

java -jar redistempletedemo-0.0.1-SNAPSHOT.jar

Der Start ist erfolgreich, die Informationen lauten wie folgt:

Lokale Tests

implementieren

http://localhost:8080/set/name/hxy

implementieren

http://localhost:8080/get/name

Gehen wir zum Redis-Container, um ihn zu überprüfen, und führen Sie den folgenden Befehl aus, um den Redis-Container aufzurufen:

docker exec -it share_redis_1 /bin/bash

redis-cli

Führen Sie „get name“ in der Konsole aus, um den dem Namen entsprechenden Wert anzuzeigen, wie unten dargestellt:

Der einfache Test war erfolgreich. Wie oben erwähnt, verschwinden alle Daten, solange der Redis-Container geschlossen ist, aber wir haben es oben in der Datei docker-compose.yml konfiguriert.

Datenträger: - /tmp/data:/data

Dies bedeutet, dass die gerade gespeicherten Daten im lokalen tmp/data-Verzeichnis gespeichert werden. Öffnen Sie tmp/data und Sie finden eine Datei namens dump.rdb

Öffnen Sie es mit einem Terminal und geben Sie den Befehl ein: vi dump.rdb und Sie sehen die Daten, die Sie gerade gespeichert haben Name: hxy

Das ist alles zur Persistenz von Redis unter Docker. Wenn es einen besseren Weg gibt, geben Sie mir bitte weitere Ratschläge. Vielen Dank fürs Lesen.

Zugehörige Projekte: https://github.com/haoxiaoyong1014/springboot-examples/tree/master/springboot-redis-docker

Zusatzwissen: Redis unter Docker installieren, starten, Passwort festlegen und Persistenz aktivieren

Ziehen Sie das Bild

Docker-Pull Redis: 5.0

Starten und Passwort setzen, Persistenz aktivieren

docker run -d --name redis-server -p 6379:6379 redis:5.0 --requirepass "meinPasswort" --appendonly yes

Die obige ausführliche Erklärung zur dauerhaften Speicherung von Redis unter Docker ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Warum ist Redis schnell? So erreichen Sie hohe Verfügbarkeit und Persistenz
  • Ausführliche Erläuterung zweier Persistenzlösungen von Redis
  • Detaillierte Erläuterung der Redis-Persistenz, Master-Slave-Synchronisierung und Sentinel unter Linux
  • Eine kurze Diskussion über die Persistenz von Redis-Speicherdaten
  • Detaillierte Erläuterung zweier Persistenzlösungen von Redis: RDB und AOF
  • Ausführliche Erklärung zur Redis-Persistenz

<<:  So machen Sie React-Komponenten im Vollbildmodus

>>:  Einige Referenzen zu Farben in HTML

Artikel empfehlen

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...

Tutorial zur Installation des Nginx-RTMP-Streaming-Servers unter Ubuntu 14

1. RTMP Das RTMP-Streaming-Protokoll ist ein von ...

React-Methode zum Anzeigen von Daten auf Seiten

Inhaltsverzeichnis Übergeordnete Komponente „list...

Detaillierte Erklärung zur Verwendung der Element-el-button-Button-Komponente

1. Hintergrund Schaltflächen werden sehr häufig v...

So betten Sie mithilfe von Iframe andere Webseiten in eine Webseite ein

So verwenden Sie Iframe: Code kopieren Der Code l...

Web-Theorie: Bringen Sie mich nicht zum Nachdenken über Lesehinweise

Kapitel 1 <br />Das wichtigste Prinzip, um ...

Erstellen eines Dateisystems für ARM-Entwicklungsboards unter Linux

1. Bitte laden Sie den Busybox-Quellcode online h...

CSS3 realisiert den Effekt der kontinuierlichen Dreiecksvergrößerung

1. CSS3-Dreieck vergrößert weiterhin Spezialeffek...

So passen Sie CSS an den Vollbildmodus des iPhone an

1. Medienabfragemethode /*iPhone X-Anpassung*/ @m...

So konfigurieren Sie Nginx's Anti-Hotlinking

Experimentelle Umgebung • Eine minimal installier...

js, um einen einfachen Front-End-Paging-Effekt zu erzielen

Einige Projekte haben ein relativ einfaches Gesch...