Loading...
Setting Up Redis with Docker Compose

Setting Up Redis with Docker Compose

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
4 min

Redis ist ein leistungsstarker In-Memory-Datenspeicher, der als grundlegender Baustein für moderne Anwendungen dient und blitzschnelles Caching, Session-Management und Echtzeit-Analysen ermöglicht. Obwohl Redis selbst unglaublich leistungsstark ist, kann die Verwaltung in einer Entwicklungs- oder Production-Umgebung herausfordernd sein. Hier kommt Docker Compose ins Spiel – damit kannst Du Redis in einer Container-Umgebung mit nur wenigen Codezeilen definieren, konfigurieren und ausführen.

In diesem Guide lernst Du, wie Du eine produktionsreife Redis-Instanz mit Docker Compose einrichtest. Wir behandeln alles von der Basiskonfiguration bis hin zu Datenpersistenz und Sicherheitsmaßnahmen, was diese Lösung perfekt für Entwicklungs- und Production-Umgebungen macht.

Schritt 1: Eine Docker Compose Datei erstellen

Zunächst musst Du eine Docker Compose Datei erstellen. Diese Datei definiert die Services, aus denen Deine Anwendungsumgebung besteht. Wir konzentrieren uns hier auf die Einrichtung von Redis.

Öffne Deinen Texteditor und erstelle eine Datei namens docker-compose.yml. So sollte sie aussehen:

services:
  cache:
    image: redis:7.4-alpine
    restart: always
    ports:
      - "6379:6379"
    command: redis-server --save 20 1 --loglevel warning --requirepass deinpasswort
    volumes:
      - cache:/data
volumes:
  cache:
    driver: local

Lass uns kurz durchgehen, was jeder Teil bewirkt:

  • services: Definiert die Services für Deine App. Hier definieren wir einen Service namens cache. Hier würdest Du auch andere Services wie eine Datenbank, einen Webserver usw. hinzufügen.
  • image: Weist Docker Compose an, das Redis 7.4 Image basierend auf Alpine Linux zu verwenden.
  • restart: Auf always gesetzt, was bedeutet, dass der Container neu startet, wenn er stoppt oder abstürzt.
  • ports: Verbindet Port 6379 auf Deinem lokalen Rechner mit Port 6379 im Container, sodass Du von Deinem Host aus auf Redis zugreifen kannst.
  • command: Passt den Redis-Server-Befehl an. --save 20 1 teilt Redis mit, die Datenbank alle 20 Sekunden zu speichern, wenn mindestens eine Änderung vorgenommen wurde. --loglevel warning stellt das Logging so ein, dass nur Warnungen angezeigt werden. --requirepass deinpasswort setzt ein Passwort für Redis als grundlegende Sicherheitsmaßnahme. Ersetze deinpasswort durch ein sicheres Passwort.
  • volumes: Konfiguriert ein Volume namens cache und verbindet es mit /data im Container. Das stellt sicher, dass Daten auch dann erhalten bleiben, wenn der Container gelöscht oder neu erstellt wird.

Schritt 2: Den Redis-Service starten

Sobald Deine docker-compose.yml Datei fertig ist, kannst Du den Redis-Service mit folgendem Befehl in Deinem Terminal starten:

docker-compose up -d

Der -d Flag lässt die Container im Hintergrund laufen. Du solltest eine Ausgabe sehen, die anzeigt, dass der Redis-Service läuft.

Schritt 3: Überprüfen, ob Redis läuft

Um sicherzustellen, dass Redis korrekt läuft, kannst Du die Redis-Kommandozeile (CLI) verwenden. Finde zuerst den Namen Deines Redis-Containers mit:

docker-compose ps

Dann kannst Du die Redis-CLI im Container mit folgendem Befehl ausführen:

docker-compose exec cache redis-cli -a deinpasswort

Ersetze deinpasswort mit dem Passwort, das Du in der docker-compose.yml Datei gesetzt hast. In der CLI kannst Du Befehle wie PING ausführen, um zu prüfen, ob Redis antwortet:

127.0.0.1:6379> PING
PONG

Du kannst auch Keys setzen und abrufen, um weiter zu testen:

127.0.0.1:6379> SET testkey "Hallo, Redis!"
OK
127.0.0.1:6379> GET testkey
"Hallo, Redis!"

Schritt 4: Den Redis-Service stoppen und entfernen

Wenn Du fertig bist, kannst Du den Redis-Service mit folgendem Befehl stoppen:

docker-compose down

Dieser Befehl stoppt und entfernt die Container, die in Deiner docker-compose.yml Datei definiert sind. Deine Volumes bleiben erhalten!

Indem Du diese Schritte befolgst, hast Du Redis mit Docker Compose eingerichtet, komplett mit Persistenz und grundlegender Sicherheit. Diese Einrichtung kann leicht in größere Anwendungen integriert oder eigenständig für Caching-Zwecke verwendet werden.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!