Design wechseln

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

Easton editorial illustration: lifecycle journey rail

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.aofinnerhalb 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 mappen
  • redis: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:

  1. Keine Persistenz: Nach Container-Neustart sind Daten weg
  2. Kein Passwortschutz: Jeder kann sich verbinden und Daten lesen oder schreiben
  3. 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) → Snapshot
  • save 300 10: Mindestens 10 Key-Änderungen in 300 Sekunden (5 Minuten) → Snapshot
  • save 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-data auf /data im 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

  1. appendfsync always: Jeder Schreibvorgang sofort auf die Festplatte

    • Am sichersten, praktisch kein Datenverlust
    • Niedrigste Performance, ungeeignet für hohe Last
  2. appendfsync everysec: Einmal pro Sekunde synchronisieren (empfohlen)

    • Gutes Gleichgewicht aus Performance und Sicherheit
    • Maximal 1 Sekunde Datenverlust
    • Empfehlung für Produktionsumgebungen
  3. 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-Image
  • restart: always: Automatischer Neustart bei Absturz
  • volumes: Konfigurationsdatei und Datenverzeichnis mounten
  • healthcheck: 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öschen
  • FLUSHDB: Aktuelle Datenbank leeren
  • KEYS *: 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:

  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. 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. 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. 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. 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?
Persistenz-Optionen:
• 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?
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.

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-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
Worauf muss man bei Redis in Produktion achten?
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.

12 Min. Lesezeit · Veröffentlicht am: 17. Dez. 2025 · Aktualisiert am: 14. Juli 2026

Ähnliche Beiträge

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog