Redis mit Docker bereitstellen: Persistenz und Passwort-Authentifizierung gegen Datenverlust

Endlich läuft der Redis-Container. Ein paar Schnittstellen getestet – Lese- und Schreibvorgänge funktionieren. Am nächsten Tag öffne ich den Laptop und prüfe den Dienststatus – alle Daten sind weg. Ein kalter Schauer.
Vielleicht kennen Sie das: Nach einem Docker-Container-Neustart wirkt es, als hätte Redis nie Daten gespeichert. Login-Sessions verschwinden, Warenkörbe werden geleert, Cache-Daten sind weg. Schlimmer noch: Man weiß nicht, warum das passiert – und schon gar nicht, wie man es behebt.
Ehrlich gesagt war ich beim ersten Mal auch nervös. Es war ein kleines Projekt, Testdaten plötzlich weg – zwar nicht produktionskritisch, aber dieses Gefühl der Hilflosigkeit war unangenehm. Später wurde klar: Container sind von Natur aus „temporär” – löschen Sie den Container, verschwinden die Daten; starten Sie ihn ohne Persistenz neu, gehen die Daten ebenfalls verloren.
Dieser Artikel führt Sie Schritt für Schritt durch:
- RDB- und AOF-Persistenz konfigurieren, damit Redis-Daten Container-Neustarts überstehen
- Passwort-Authentifizierung einrichten, um unbefugten Zugriff zu verhindern (manche Redis-Instanzen wurden ohne Passwort gehackt und für Crypto-Mining missbraucht)
- Konfigurationsdateien mounten, damit Ihr Redis-Deployment standardisiert und wartbar wird
- Best Practices für Produktionsumgebungen, inklusive Logs, Healthcheck und Performance-Optimierung
Ob Backend-Entwickler, DevOps-Ingenieur oder Docker-Einsteiger – wenn Sie diesem Artikel folgen, deployen Sie einen produktionsreifen Redis-Container.
Warum verliert ein Redis-Container Daten?
Eine Analogie: Ein Docker-Container ist wie ein Hotelzimmer – beim Check-out wird alles geleert. Container funktionieren ähnlich: Sie sind flüchtig, und beim Löschen verschwinden die darin gespeicherten Daten.
Redis speichert Daten standardmäßig im internen Dateisystem des Containers. Schreibvorgänge landen unter Pfaden wie /data/dump.rdb oder /data/appendonly.aof – innerhalb des Containers. Wird der Container gelöscht oder neu erstellt, gehen diese Dateien mit verloren.
Ein reales Beispiel: Ein Startup deployte Redis in der Testumgebung per Docker – ohne Persistenz. Nach einem Server-Neustart waren alle Benutzer-Sessions weg, Login-Status gelöscht, Warenkorb-Daten verschwunden. Auch wenn es nur die Testumgebung war, machte das dem Team klar: Bei Container-Deployments muss Datenspeicherung mitgedacht werden.
Schätzungen zufolge entstehen rund 70 % der Redis-Datenverluste in Containern, weil keine Persistenz konfiguriert wurde. Kurz gesagt: In diese Falle tappt fast jeder einmal.
Die Rolle von Docker Volumes
Volumes (Datenvolumes) lösen genau dieses Problem. Stellen Sie sich vor, wichtige Dateien liegen in der Cloud statt auf der lokalen Festplatte.
Mit dem -v-Parameter mounten Sie ein Host-Verzeichnis in den Container – die Daten liegen auf dem Host. Container gelöscht? Daten bleiben. Container neu gestartet? Daten sind weiterhin lesbar. Deshalb muss in Produktion ein Daten-Volume gemountet werden.
Kurz zusammengefasst:
- Kein Volume-Mount = Daten im Container = beim Löschen des Containers weg
- Volume gemountet = Daten im Host-Verzeichnis = beim Löschen des Containers erhalten
Schnellstart: Basis-Redis-Container
Bevor wir Persistenz besprechen, starten wir den einfachsten Redis-Container. So sehen Sie direkt, wie es ohne Persistenz aussieht.
Basis-Container starten
Terminal öffnen und diesen Befehl ausführen:
docker run -d --name redis-basic -p 6379:6379 redis:latest
Bedeutung der Parameter:
-d: Im Hintergrund ausführen--name redis-basic: Container benennen, für einfachere Verwaltung-p 6379:6379: Port 6379 des Containers auf Port 6379 des Hosts mappenredis:latest: Neuestes Redis-Image verwenden
Docker lädt das Redis-Image automatisch herunter (falls lokal nicht vorhanden) und startet den Container.
Prüfen, ob der Container läuft
Mit docker ps den Container-Status ansehen:
docker ps
Steht redis-basic auf Up, läuft der Container normal.
Als Nächstes in den Container wechseln und Redis testen:
docker exec -it redis-basic redis-cli
In der Redis-Konsole einen Testwert speichern:
set test "hello"
get test
Gibt Redis "hello" zurück, funktioniert alles.
Die Schwachstellen dieser Basis-Version
Sieht gut aus – hat aber drei kritische Probleme:
- Keine Persistenz: Nach Container-Neustart sind Daten weg
- Kein Passwortschutz: Jeder kann sich verbinden und Daten lesen oder schreiben
- Standardkonfiguration: Keine Anpassung von Speicherlimit, Persistenz-Strategie usw.
Testen Sie einen Neustart:
docker restart redis-basic
docker exec -it redis-basic redis-cli
get test
Höchstwahrscheinlich ist der Key test verschwunden – das Ergebnis fehlender Persistenz.
RDB-Persistenz konfigurieren (Snapshot-Methode)
Redis bietet zwei Persistenz-Methoden: RDB und AOF. Zuerst RDB – einfacher für den Einstieg.
Was ist RDB?
RDB steht für Redis Database – im Grunde ein „Datenbank-Snapshot”. Redis speichert in regelmäßigen Abständen den gesamten Speicherinhalt in eine dump.rdb-Datei.
Vorteil: Schnelle Wiederherstellung. Nachteil: Daten seit dem letzten Snapshot können verloren gehen. Bei einem 5-Minuten-Intervall verlieren Sie im schlimmsten Fall bis zu 5 Minuten an Schreibvorgängen.
RDB-Konfigurationsparameter
RDB-Persistenz wird über den save-Parameter gesteuert. Format:
save <Sekunden> <Anzahl geänderter Keys>
Beispiele:
save 900 1: Mindestens 1 Key-Änderung in 900 Sekunden (15 Minuten) → Snapshotsave 300 10: Mindestens 10 Key-Änderungen in 300 Sekunden (5 Minuten) → Snapshotsave 60 10000: Mindestens 10.000 Key-Änderungen in 60 Sekunden → Snapshot
Diese Regeln gelten als Oder-Verknüpfung – eine erfüllte Regel reicht.
Persistenz durch Volume-Mount
RDB allein reicht nicht – das Volume muss auf den Host gemountet werden. So bleibt dump.rdb erhalten, auch wenn der Container gelöscht wird.
Datenverzeichnis anlegen:
mkdir -p ~/redis-data
Redis-Container mit Volume starten:
docker run -d \
--name redis-rdb \
-p 6379:6379 \
-v ~/redis-data:/data \
redis:latest \
redis-server --save 60 1 --dir /data
Wichtige Punkte:
-v ~/redis-data:/data: Host-Verzeichnis~/redis-dataauf/dataim Container mappen--save 60 1: Snapshot bei mindestens 1 Key-Änderung in 60 Sekunden (für Tests; in Produktion größere Intervalle)--dir /data: Speicherpfad für RDB-Dateien
Persistenz prüfen
In den Container wechseln und Daten speichern:
docker exec -it redis-rdb redis-cli
set user:1 "张三"
set user:2 "李四"
60 Sekunden warten, damit Redis den Snapshot speichert. Dann Container neu starten:
docker restart redis-rdb
Erneut prüfen:
docker exec -it redis-rdb redis-cli
get user:1
Gibt Redis "张三" zurück, ist die Persistenz erfolgreich konfiguriert.
Im Host-Verzeichnis ~/redis-data finden Sie die Datei dump.rdb – das Redis-Snapshot.
AOF-Persistenz konfigurieren (Append-Only-Log)
RDB ist einfach, kann aber Daten seit dem letzten Snapshot verlieren. Bei hohen Anforderungen an Datensicherheit brauchen Sie AOF.
Was ist AOF?
AOF steht für Append Only File – ein reines Append-Log. Bei jedem Schreibvorgang (set, del, incr usw.) wird der Befehl an appendonly.aof angehängt.
Analogie: RDB ist ein Foto, AOF ein Video. RDB macht regelmäßig Schnappschüsse, AOF zeichnet jede Aktion auf.
Vorteil: Höhere Datensicherheit – maximal 1 Sekunde Datenverlust (bei everysec). Nachteil: Größere Dateien, etwas langsamere Wiederherstellung.
Drei AOF-Synchronisationsstrategien
-
appendfsync always: Jeder Schreibvorgang sofort auf die Festplatte
- Am sichersten, praktisch kein Datenverlust
- Niedrigste Performance, ungeeignet für hohe Last
-
appendfsync everysec: Einmal pro Sekunde synchronisieren (empfohlen)
- Gutes Gleichgewicht aus Performance und Sicherheit
- Maximal 1 Sekunde Datenverlust
- Empfehlung für Produktionsumgebungen
-
appendfsync no: Betriebssystem entscheidet über Synchronisation
- Höchste Performance
- Möglicherweise mehr Datenverlust, nicht empfohlen
Redis mit AOF-Persistenz starten
Datenverzeichnis sicherstellen:
mkdir -p ~/redis-data
Container starten:
docker run -d \
--name redis-aof \
-p 6379:6379 \
-v ~/redis-data:/data \
redis:latest \
redis-server --appendonly yes --appendfsync everysec --dir /data
Wichtige Parameter:
--appendonly yes: AOF-Persistenz aktivieren--appendfsync everysec: Synchronisation jede Sekunde--dir /data: Datenverzeichnis festlegen
Nach kurzer Zeit erscheint im Datenverzeichnis die Datei appendonly.aof:
ls ~/redis-data/
Hybrid-Persistenz (empfohlen ab Redis 4.0+)
Ab Redis 4.0 empfiehlt Redis den Hybridmodus, der RDB und AOF kombiniert:
- RDB für schnelle Wiederherstellung
- AOF für Datensicherheit
In der Konfigurationsdatei eine Zeile hinzufügen:
aof-use-rdb-preamble yes
Vorteil beim Neustart: Zuerst RDB-Snapshot laden (schnell), dann AOF-Log ab dem Snapshot nachspielen (Datenintegrität).
Bei Redis 4.0 oder neuer: Hybridmodus direkt nutzen – keine langwierige Debatte zwischen RDB und AOF.
Redis per Konfigurationsdatei verwalten (empfohlen für Produktion)
Bisher konfigurierten wir Redis über Kommandozeilenparameter wie --appendonly yes --appendfsync everysec. Problem: Viele Parameter machen den Befehl lang und schwer wartbar.
In Produktion ist die Konfigurationsdatei der Standard.
Warum eine Konfigurationsdatei?
Vorteile:
- Alle Einstellungen an einem Ort, übersichtlich
- Versionskontrolle möglich (z. B. in Git)
- Team kann dieselbe Konfiguration teilen
- Änderungen ohne erneutes Tippen langer Befehle
Wenn Redis dauerhaft laufen soll: Konfigurationsdatei verwenden, nicht abkürzen.
Standard-Konfigurationsdatei beschaffen
Redis liefert eine Standard-Konfiguration, die Sie aus einem Docker-Container kopieren können:
mkdir -p ~/redis-config
docker run --rm redis:latest cat /etc/redis/redis.conf > ~/redis-config/redis.conf
Die Standard-Konfiguration landet in ~/redis-config/redis.conf.
Konfigurationsdatei anpassen
redis.conf im Editor öffnen und folgende Einträge anpassen:
1. Netzwerk-Konfiguration
# Alle IPs erlauben (in Produktion besser interne IP)
bind 0.0.0.0
# Protected Mode deaktivieren (nach Passwort-Aktivierung möglich)
protected-mode no
2. Passwort-Authentifizierung
# Zugriffspasswort setzen
requirepass YourStrongPassword123
3. Persistenz-Konfiguration
# RDB-Persistenz
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
# AOF-Persistenz
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
# Hybrid-Persistenz (Redis 4.0+)
aof-use-rdb-preamble yes
# Datenverzeichnis
dir /data
4. Maximaler Speicher
# Speicher auf 512 MB begrenzen
maxmemory 512mb
# Eviction-Strategie: zuletzt selten genutzte Keys entfernen
maxmemory-policy allkeys-lru
5. Log-Konfiguration
# Log-Level: debug, verbose, notice, warning
loglevel notice
# Log-Dateipfad (leerer String = Standardausgabe)
logfile ""
Container mit Konfigurationsdatei starten
Nach der Anpassung die Datei per -v mounten:
docker run -d \
--name redis-prod \
-p 6379:6379 \
-v ~/redis-config/redis.conf:/usr/local/etc/redis/redis.conf \
-v ~/redis-data:/data \
redis:latest \
redis-server /usr/local/etc/redis/redis.conf
Der letzte Teil redis-server /usr/local/etc/redis/redis.conf weist Redis an, mit dieser Konfigurationsdatei zu starten.
Prüfen, ob die Konfiguration greift
In den Container wechseln und Einstellungen abfragen:
docker exec -it redis-prod redis-cli -a YourStrongPassword123
config get save
config get appendonly
config get maxmemory
Stimmen die Werte mit Ihrer Konfigurationsdatei überein, ist alles aktiv.
Redis-Passwort-Authentifizierung (3 Methoden)
Ein reales Beispiel: Eine Firma betrieb Redis ohne Passwort, direkt im Internet erreichbar. Hacker nutzten die Instanz für Crypto-Mining. Kein Witz – tatsächlich passiert.
Warum ein Passwort Pflicht ist
Redis hat standardmäßig kein Passwort – jeder kann sich verbinden und Daten lesen oder schreiben. Ist der Port im Internet oder im internen Netz ungeschützt, ist das ein offenes Tor.
In Produktion ist Passwort-Authentifizierung nicht verhandelbar.
Methode 1: Passwort per Kommandozeilenparameter
Am einfachsten – beim Start --requirepass hinzufügen:
docker run -d \
--name redis-pwd \
-p 6379:6379 \
redis:latest \
redis-server --requirepass "MyStr0ng#P@ssw0rd"
Gut für schnelle Tests, nicht für Produktion – das Passwort erscheint in der Shell-Historie.
Methode 2: Passwort in der Konfigurationsdatei (empfohlen)
In redis.conf eine Zeile hinzufügen:
requirepass YourStrongPassword123
Dann wie oben beschrieben mit gemounteter Konfigurationsdatei starten.
Das ist der Produktions-Standard: Passwort in der Datei, nicht in der Shell-Historie, einfach im Team zu verwalten.
Empfehlungen für Passwort-Stärke:
- Mindestens 16 Zeichen
- Groß- und Kleinbuchstaben, Ziffern, Sonderzeichen
- Keine gängigen Wörter oder Geburtsdaten
Methode 3: Passwort dynamisch im laufenden Container
Läuft der Container bereits und Sie brauchen eine schnelle Änderung:
docker exec -it redis-pwd redis-cli
config set requirepass "NewPassword123"
Nach Neustart verfällt diese Einstellung – nur für Notfälle, nicht dauerhaft.
Mit Passwort verbinden
Zwei Wege:
Variante 1: Passwort direkt in der Kommandozeile
docker exec -it redis-pwd redis-cli -a "MyStr0ng#P@ssw0rd"
Variante 2: Erst verbinden, dann authentifizieren
docker exec -it redis-pwd redis-cli
auth MyStr0ng#P@ssw0rd
set test "hello"
Bei falschem Passwort erscheint:
(error) NOAUTH Authentication required.
Dann mit auth erneut authentifizieren.
Anwendungs-Verbindungskonfiguration
Verbindungsstring mit Passwort:
redis://:YourStrongPassword123@localhost:6379
Oder im Code:
// Node.js-Beispiel
const redis = require('redis');
const client = redis.createClient({
host: 'localhost',
port: 6379,
password: 'YourStrongPassword123'
});
Deployment mit Docker Compose (empfohlen für Teams)
Bisher starteten wir Container mit docker run. Nachteil: lange Befehle, jedes Mal neu tippen.
Für Teams oder mehrere Container ist Docker Compose die bessere Wahl.
Warum Docker Compose?
Vorteile:
- Konfiguration in
docker-compose.yml, versionsfähig - Ein Befehl zum Starten, keine komplexen Parameter merken
- Einheitliche Umgebung im Team
- Mehrere Container (Redis + MySQL + Nginx) zentral verwalten
Vollständige docker-compose.yml
Datei docker-compose.yml anlegen:
version: '3.8'
services:
redis:
image: redis:7.2-alpine
container_name: redis-prod
restart: always
ports:
- "6379:6379"
volumes:
- ./redis-config/redis.conf:/usr/local/etc/redis/redis.conf
- ./redis-data:/data
command: redis-server /usr/local/etc/redis/redis.conf
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
volumes:
redis-data:
driver: local
Wichtige Einstellungen:
image: redis:7.2-alpine: Leichtes Alpine-Imagerestart: always: Automatischer Neustart bei Absturzvolumes: Konfigurationsdatei und Datenverzeichnis mountenhealthcheck: Alle 10 Sekunden prüfen, ob Redis gesund ist
Ein-Klick-Start
Im gleichen Verzeichnis ausführen:
docker-compose up -d
-d = Hintergrund. Docker Compose erstellt Netzwerk, Volumes und startet den Container.
Status anzeigen
docker-compose ps
Logs anzeigen
docker-compose logs -f redis
-f = kontinuierliche Ausgabe, ähnlich tail -f.
Container stoppen
docker-compose down
Stoppt und entfernt Container, nicht die Volumes – Daten bleiben erhalten.
Container neu starten
docker-compose restart redis
Erweiterte Konfiguration
Weitere Dienste im selben docker-compose.yml:
version: '3.8'
services:
redis:
# Redis-Konfiguration...
mysql:
image: mysql:8.0
# MySQL-Konfiguration...
app:
build: .
# App-Konfiguration...
depends_on:
- redis
- mysql
Beim Projektstart starten Redis, MySQL und App gemeinsam – Abhängigkeiten werden automatisch berücksichtigt.
Fehlerbehebung und Best Practices
Der Redis-Container läuft – trotzdem treten Probleme auf. Dieser Abschnitt behandelt typische Fehler und Produktions-Empfehlungen.
Redis-Logs ansehen
Bei Problemen zuerst die Logs prüfen.
Letzte 100 Zeilen:
docker logs --tail 100 redis-prod
Kontinuierliche Ausgabe:
docker logs -f redis-prod
Mit Docker Compose:
docker-compose logs -f redis
Logs zeigen: Start erfolgreich? Konfigurationsfehler? Ungewöhnliche Verbindungen?
Container-Healthcheck
Healthcheck erkennt automatisch, ob Redis läuft, und startet bei Fehlern neu.
In docker-compose.yml:
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
Alle 10 Sekunden redis-cli ping – nach 3 Fehlschlägen gilt der Container als ungesund.
Mit restart: always startet ein ungesunder Container automatisch neu.
Performance-Optimierung
1. Maximalen Speicher begrenzen
Redis nutzt standardmäßig allen verfügbaren Speicher – in Produktion unbedingt begrenzen:
maxmemory 512mb
maxmemory-policy allkeys-lru
allkeys-lru entfernt bei vollem Speicher die am wenigsten genutzten Keys.
2. Gefährliche Befehle deaktivieren
In Produktion riskant:
FLUSHALL: Alle Daten löschenFLUSHDB: Aktuelle Datenbank leerenKEYS *: Alle Keys auflisten – blockiert Redis
In der Konfiguration deaktivieren:
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""
3. Persistenz-Frequenz anpassen
Bei sehr hoher Schreiblast RDB-Intervalle lockern:
save 900 1
save 300 10
save 60 10000
Standardwerte passen für die meisten Szenarien. Reiner Cache ohne Persistenz-Anforderung? Intervalle können großzügiger sein.
Sicherheitshärtung
1. Nicht ins Internet exponieren
Redis gehört nicht direkt ins Internet. Remote-Zugriff über SSH-Tunnel oder VPN.
Interne IP binden:
bind 127.0.0.1 192.168.1.100
2. Starkes Passwort verwenden
Mindestens 16 Zeichen, gemischte Zeichen:
requirepass Th1s!sA$tr0ngP@ssw0rd2024
3. Regelmäßige Backups
Auch mit Persistenz regelmäßig sichern. Cronjob, der nachts dump.rdb und appendonly.aof kopiert:
#!/bin/bash
DATE=$(date +%Y%m%d)
cp ~/redis-data/dump.rdb ~/redis-backup/dump-$DATE.rdb
cp ~/redis-data/appendonly.aof ~/redis-backup/appendonly-$DATE.aof
Checkliste für Produktions-Deployment
Vor dem Go-Live diese Punkte prüfen:
- ✅ Persistenz konfiguriert (Hybridmodus RDB+AOF empfohlen)
- ✅ Passwort-Authentifizierung aktiviert
- ✅ Daten-Volume auf Host-Verzeichnis gemountet
- ✅ Eigene Konfigurationsdatei (nicht Standard)
- ✅ Logs abrufbar
- ✅ Healthcheck konfiguriert
- ✅ Maximaler Speicher begrenzt
- ✅ Gefährliche Befehle deaktiviert oder umbenannt
- ✅ Regelmäßige Backup-Strategie
- ✅ Nicht ins Internet exponiert (oder VPN/SSH-Tunnel)
Redis-Performance überwachen
Speichernutzung prüfen:
docker exec -it redis-prod redis-cli -a your_password
info memory
Persistenz-Status:
info persistence
Verbindungsanzahl:
info clients
Wenn Sie bis hierher mitgearbeitet haben, sollten Sie einen produktionsreifen Redis-Container haben: Persistenz aktiv, Passwort gesetzt, Konfiguration standardisiert.
Fazit
Zurück zum Anfang: Freitagabend Redis deployt, Montagmorgen alle Daten weg. Jetzt wissen Sie warum – keine Persistenz, Daten im Container, Neustart = Verlust.
Dieser Artikel deckt die vollständige Lösung ab:
- RDB-Snapshot-Persistenz: Regelmäßige Speicherung, schnelle Wiederherstellung, gut für Backups
- AOF-Log-Persistenz: Echtzeit-Protokollierung, hohe Datensicherheit, maximal 1 Sekunde Verlust
- Hybrid-Persistenz (empfohlen): RDB + AOF kombiniert – schnelle Recovery und Datensicherheit
- Passwort-Authentifizierung: Drei Konfigurationswege, in Produktion Pflicht
- Konfigurationsdatei: Standardisiertes Deployment, wartbar und teamfähig
- Docker Compose: Ein-Klick-Start, Configuration as Code
Nutzen Sie bereits Docker-Redis? Prüfen Sie sofort:
- Ist das Daten-Volume gemountet? (
-v ~/redis-data:/data) - Ist Persistenz aktiviert? (RDB, AOF oder Hybridmodus)
- Ist ein Passwort gesetzt? (
requirepass) - Gibt es eine eigene Konfigurationsdatei? (nicht die Standardkonfiguration)
Für Redis in Produktion sind diese vier Punkte das Minimum. Damit müssen Sie sich keine Sorgen um Datenverlust oder unbefugten Zugriff machen.
Speichern Sie diesen Artikel als Referenz für das nächste Redis-Deployment. Teilen Sie ihn im Team – einheitliche Standards reduzieren Fehler.
Die Konfigurationen basieren auf Redis 7.x. Bei anderen Versionen die offizielle Redis-Dokumentation prüfen, ob sich Parameter geändert haben.
Vollständiger Ablauf: Redis mit Docker bereitstellen
RDB/AOF-Persistenz und Passwort-Authentifizierung konfigurieren, Datenverlust nach Container-Neustart vermeiden – für Produktionsumgebungen
⏱️ Estimated time: 30 min
- 1
Step 1: Basis-Deployment: Volume-Mount und Persistenz-Konfiguration
Volume für Datenverzeichnis anlegen:
• docker run -d -v redis-data:/data redis:7.0
• Daten liegen im Volume – beim Löschen des Containers bleiben sie erhalten
RDB-Persistenz konfigurieren:
• save-Parameter in redis.conf setzen
• save 900 1 (mindestens 1 Key-Änderung in 900 Sekunden)
• save 300 10 (mindestens 10 Key-Änderungen in 300 Sekunden)
• save 60 10000 (mindestens 10.000 Key-Änderungen in 60 Sekunden)
• Regelmäßige Snapshots speichern die Daten
AOF-Persistenz konfigurieren:
• appendonly yes in redis.conf setzen
• Jeder Schreibvorgang wird protokolliert – höhere Datensicherheit
Hybridmodus:
• RDB und AOF gleichzeitig aktivieren (empfohlen für Produktion)
• Schnelle Wiederherstellung und Datensicherheit kombiniert - 2
Step 2: Passwort-Authentifizierung konfigurieren
requirepass-Parameter in redis.conf setzen:
• requirepass yourpassword
Passwort per Umgebungsvariable übergeben:
• docker run -e REDIS_PASSWORD=yourpassword
Passwort in docker-compose konfigurieren:
• environment:
REDIS_PASSWORD: yourpassword
Unbefugten Zugriff vermeiden
Passwort-Authentifizierung prüfen:
• Bei redis-cli-Verbindung Passwort angeben: redis-cli -a yourpassword
• Oder AUTH-Befehl zur Authentifizierung verwenden - 3
Step 3: Produktions-Checkliste und Backup-Strategie
Checkliste für Produktions-Deployment:
1. Ist das Daten-Volume gemountet? (-v ~/redis-data:/data)
2. Ist Persistenz aktiviert? (RDB, AOF oder Hybridmodus)
3. Ist ein Passwort gesetzt? (requirepass)
4. Ist eine eigene Konfigurationsdatei hinterlegt? (nicht die Standardkonfiguration)
Backup-Strategie:
• Volume-Daten regelmäßig sichern
• RDB-Datei mit redis-cli --rdb exportieren
• Automatisches Backup-Skript einrichten
• Mehrere Container mit docker-compose verwalten
• Healthcheck konfigurieren
Für Redis in Produktion sind diese vier Punkte das Minimum – damit müssen Sie sich keine Sorgen um Datenverlust oder unbefugten Zugriff machen.
FAQ
Wie vermeidet man Datenverlust bei Docker-Redis?
• RDB-Persistenz (regelmäßige Snapshots, save-Parameter konfigurieren)
• AOF-Persistenz (jeder Schreibvorgang wird protokolliert, appendonly yes setzen)
• Hybridmodus (RDB+AOF, empfohlen für Produktion)
• Volume-Mount für Datenverzeichnis (docker run -v redis-data:/data)
Ursache: Nach Container-Neustart gehen Daten verloren, weil Redis standardmäßig keine Persistenz aktiviert – Daten liegen nur im Speicher und verschwinden mit dem Container.
Vollständiger Ablauf: Volume anlegen → redis.conf mit Persistenz konfigurieren → Passwort-Authentifizierung einrichten → Redis-Container starten → Persistenz und Authentifizierung prüfen → Backup-Strategie einrichten.
Wie konfiguriert man Redis-Persistenz?
• save-Parameter in redis.conf setzen
• save 900 1 (mindestens 1 Key-Änderung in 900 Sekunden)
• save 300 10 (mindestens 10 Key-Änderungen in 300 Sekunden)
• save 60 10000 (mindestens 10.000 Key-Änderungen in 60 Sekunden)
• Regelmäßige Snapshots speichern die Daten
AOF-Persistenz konfigurieren:
• appendonly yes in redis.conf setzen
• Jeder Schreibvorgang wird protokolliert – höhere Datensicherheit
Hybridmodus: RDB und AOF gleichzeitig aktivieren (empfohlen für Produktion) – schnelle Wiederherstellung und Datensicherheit kombiniert.
Volume-Mount: docker run -d -v redis-data:/data redis:7.0 – Daten liegen im Volume, beim Löschen des Containers bleiben sie erhalten.
Wie konfiguriert man Redis-Passwort-Authentifizierung?
• requirepass yourpassword
Passwort per Umgebungsvariable übergeben:
• docker run -e REDIS_PASSWORD=yourpassword
Passwort in docker-compose konfigurieren:
• environment:
REDIS_PASSWORD: yourpassword
Unbefugten Zugriff vermeiden
Passwort-Authentifizierung prüfen:
• Bei redis-cli-Verbindung Passwort angeben: redis-cli -a yourpassword
• Oder AUTH-Befehl zur Authentifizierung verwenden
Worauf muss man bei Redis in Produktion achten?
1) Ist das Daten-Volume gemountet? (-v ~/redis-data:/data)
2) Ist Persistenz aktiviert? (RDB, AOF oder Hybridmodus)
3) Ist ein Passwort gesetzt? (requirepass)
4) Ist eine eigene Konfigurationsdatei hinterlegt? (nicht die Standardkonfiguration)
Backup-Strategie:
• Volume-Daten regelmäßig sichern
• RDB-Datei mit redis-cli --rdb exportieren
• Automatisches Backup-Skript einrichten
• Mehrere Container mit docker-compose verwalten
• Healthcheck konfigurieren
Für Redis in Produktion sind diese vier Punkte das Minimum – damit müssen Sie sich keine Sorgen um Datenverlust oder unbefugten Zugriff machen.
12 Min. Lesezeit · Veröffentlicht am: 17. Dez. 2025 · Aktualisiert am: 14. Juli 2026
Docker Praxisleitfaden
Wenn du über die Suche hier gelandet bist, kommst du am schnellsten weiter, indem du zum vorherigen oder nächsten Beitrag dieser Serie springst.
Vorheriger
Docker-Pull-Timeout im Unternehmensnetz: DNS, Proxy und Mirror-Beschleunigung
Docker pull hängt im Unternehmensnetz? Dieser Artikel bietet einen vollständigen Troubleshooting-Workflow zu DNS, Proxy und Mirror-Beschleunigung – inklusive aktueller Mirror-Quellen (Mai 2026) zur schnellen Fehlerfindung.
Teil 25 von 38
Nächster
Docker MySQL vollständiger Leitfaden: Von Datenspeicherung bis Master-Slave-Replikation
Von Docker-MySQL-Datenspeicherung bis zur Master-Slave-Replikation: Lösungen für Datenverlust nach Container-Neustart, Config-Mounts und Verbindungsfehler – ein produktionsreifes Deployment von A bis Z.
Teil 27 von 38
Ähnliche Beiträge
Docker vs. virtuelle Maschine: Performance-Unterschiede und Szenario-Auswahl in 5 Minuten

Docker vs. virtuelle Maschine: Performance-Unterschiede und Szenario-Auswahl in 5 Minuten
Docker-Installation ohne Fallstricke (2025): Vollständige Lösungen von permission denied bis zum erfolgreichen Start


Kommentare
Melde dich mit GitHub an, um einen Kommentar zu hinterlassen