Redis ist ein quelloffener In-Memory-Datenstrukturspeicher, der als Datenbank, Cache, Message Broker und Streaming-Engine fungiert. Seine Faehigkeit, Daten direkt aus dem RAM bereitzustellen, macht ihn ausserordentlich schnell — mit typischen Antwortzeiten unter einer Millisekunde. Diese Anleitung fuehrt Sie durch die Bereitstellung von Redis auf Ubuntu Server, die Konfiguration fuer Produktionsworkloads, die Absicherung gegen gaengige Bedrohungen und die Ueberwachung der Leistung mit integrierten Werkzeugen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ubuntu Server 20.04, 22.04 oder 24.04
- Terminalzugang mit sudo-Berechtigungen
- Mindestens 1 GB verfuegbarer RAM (mehr fuer Produktionsdatensaetze)
- Grundlegende Vertrautheit mit der Linux-Kommandozeile
- Eine konfigurierte Firewall zur Zugriffsbeschraenkung (siehe unsere UFW-Anleitung)
Was ist Redis?
Redis steht fuer Remote Dictionary Server. Es wurde 2009 von Salvatore Sanfilippo entwickelt und hat sich zu einem der am weitesten verbreiteten In-Memory-Datenspeicher der Welt entwickelt. Im Gegensatz zu traditionellen Datenbanken, die von der Festplatte lesen und auf sie schreiben, haelt Redis den gesamten Datensatz im Arbeitsspeicher, wodurch Latenzen unter einer Millisekunde sowohl fuer Lese- als auch fuer Schreiboperationen moeglich sind.
Wichtige Merkmale von Redis:
- In-Memory-Speicherung — alle Daten liegen im RAM fuer maximale Geschwindigkeit
- Reichhaltige Datenstrukturen — unterstuetzt Strings, Hashes, Listen, Sets, Sorted Sets, Streams und mehr
- Optionale Persistenz — kann Daten fuer Haltbarkeit auf die Festplatte schreiben
- Replikation — unterstuetzt Master-Replica-Architektur fuer Hochverfuegbarkeit
- Atomare Operationen — alle Befehle werden atomar ausgefuehrt
- Pub/Sub-Messaging — integriertes Publish/Subscribe-System fuer Echtzeitkommunikation
- Lua-Scripting — serverseitige Skriptausfuehrung fuer komplexe Operationen
Redis-Anwendungsfaelle
Redis ueberzeugt in Szenarien, in denen Geschwindigkeit entscheidend ist:
Caching-Schicht: Platzieren Sie Redis zwischen Ihrer Anwendung und der primaeren Datenbank, um haeufig angeforderte Daten aus dem Arbeitsspeicher bereitzustellen. Dies reduziert die Datenbanklast und verbessert die Antwortzeiten erheblich.
Session-Speicherung: Speichern Sie Benutzersitzungen in Redis statt in festplattenbasierten Speichern. Dies ermoeglicht die gemeinsame Nutzung von Sitzungen ueber mehrere Anwendungsserver und bietet schnellen Lese-/Schreibzugriff.
Message Queues: Verwenden Sie Redis-Listen oder Streams als leichtgewichtige Nachrichtenwarteschlangen fuer asynchrone Aufgabenverarbeitung. Worker koennen Nachrichten zuverlaessig mit Blocking Pops oder Consumer Groups konsumieren.
Pub/Sub-Messaging: Verbreiten Sie Echtzeitereignisse an mehrere Abonnenten. Gaengig fuer Chat-Anwendungen, Live-Benachrichtigungen und Echtzeit-Dashboards.
Rate Limiting: Implementieren Sie API-Ratenbegrenzung mit Redis-Zaehlern und automatischer Ablaufzeit. Die atomaren Inkrementierungs- und TTL-Funktionen machen dies unkompliziert.
Bestenlisten und Rankings: Sorted Sets bieten natuerliche Unterstuetzung fuer gerankte Daten mit O(log N) Einfuege- und Abrufoperationen nach Score.
Redis auf Ubuntu installieren
Der empfohlene Ansatz ist die Installation von Redis aus dem offiziellen APT-Repository, um die neueste stabile Version zu erhalten.
Das offizielle Redis-Repository hinzufuegen
sudo apt update
sudo apt install -y lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt update
Redis installieren
sudo apt install -y redis-server
Installation ueberpruefen
redis-cli ping
Sie sollten folgende Antwort erhalten:
PONG
Installierte Version pruefen:
redis-server --version
Dienststatus pruefen:
sudo systemctl status redis-server
Redis fuer den automatischen Start beim Booten aktivieren:
sudo systemctl enable redis-server
Konfigurationsgrundlagen
Die Hauptkonfigurationsdatei von Redis befindet sich unter /etc/redis/redis.conf. Erstellen Sie vor Aenderungen eine Sicherungskopie:
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.backup
Oeffnen Sie die Konfigurationsdatei:
sudo nano /etc/redis/redis.conf
Netzwerkbindung
Standardmaessig bindet Redis an 127.0.0.1 (nur localhost). Fuer eine Caching-Schicht, auf die lokale Anwendungen zugreifen, ist dies die sicherste Einstellung:
bind 127.0.0.1 ::1
Wenn Remote-Clients Zugriff benoetigen, fuegen Sie die private IP des Servers hinzu:
bind 127.0.0.1 192.168.1.100
Warnung: Binden Sie Redis niemals an
0.0.0.0auf einem oeffentlich erreichbaren Server ohne ordnungsgemaesse Authentifizierung und Firewall-Regeln. Exponierte Redis-Instanzen sind ein haeufiges Ziel automatisierter Angriffe.
Port-Konfiguration
Der Standardport ist 6379. Aendern Sie ihn, wenn Sie automatisiertes Scanning reduzieren moechten:
port 6379
Maximaler Speicher
Setzen Sie ein festes Speicherlimit, um zu verhindern, dass Redis den gesamten System-RAM verbraucht:
maxmemory 256mb
Passen Sie diesen Wert an den verfuegbaren Arbeitsspeicher Ihres Servers an. Eine gaengige Faustregel besagt, nicht mehr als 75% des gesamten RAM an Redis zuzuweisen, wenn es die primaere Arbeitslast auf dem Server ist.
Eviction-Richtlinien
Wenn Redis das maxmemory-Limit erreicht, verwendet es eine Eviction-Richtlinie, um zu entscheiden, welche Schluessel entfernt werden. Legen Sie die Richtlinie fest mit:
maxmemory-policy allkeys-lru
Verfuegbare Eviction-Richtlinien:
| Richtlinie | Beschreibung |
|---|---|
noeviction | Gibt Fehler zurueck, wenn das Speicherlimit erreicht ist (Standard) |
allkeys-lru | Entfernt die am laengsten nicht verwendeten Schluessel aus allen Schluesseln |
allkeys-lfu | Entfernt die am seltensten verwendeten Schluessel aus allen Schluesseln |
volatile-lru | Entfernt die am laengsten nicht verwendeten Schluessel mit gesetzter Ablaufzeit |
volatile-lfu | Entfernt die am seltensten verwendeten Schluessel mit gesetzter Ablaufzeit |
allkeys-random | Entfernt zufaellige Schluessel aus allen Schluesseln |
volatile-random | Entfernt zufaellige Schluessel mit gesetzter Ablaufzeit |
volatile-ttl | Entfernt Schluessel mit der naechstliegenden Ablaufzeit |
Fuer einen Allzweck-Cache ist allkeys-lru die gaengigste Wahl. Fuer Workloads, bei denen die Zugriffshaeufigkeit wichtiger ist als die Aktualitaet, verwenden Sie allkeys-lfu.
Nach Aenderung der Konfiguration starten Sie Redis neu:
sudo systemctl restart redis-server
Persistenzoptionen
Redis bietet zwei Mechanismen, um Daten auf der Festplatte zu persistieren.
RDB-Snapshots
RDB erstellt zeitpunktbasierte Snapshots in konfigurierten Intervallen. Dies ist standardmaessig aktiviert:
save 3600 1 300 100 60 10000
Das bedeutet:
- Speichern, wenn mindestens 1 Schluessel innerhalb von 3600 Sekunden (1 Stunde) geaendert wurde
- Speichern, wenn mindestens 100 Schluessel innerhalb von 300 Sekunden (5 Minuten) geaendert wurden
- Speichern, wenn mindestens 10000 Schluessel innerhalb von 60 Sekunden (1 Minute) geaendert wurden
Die Snapshot-Datei wird gespeichert unter:
dbfilename dump.rdb
dir /var/lib/redis
Vorteile von RDB:
- Kompakte Einzeldatei-Darstellung Ihrer Daten
- Ideal fuer Backups und Disaster Recovery
- Minimale Leistungsbeeintraechtigung waehrend des Normalbetriebs
- Schnellere Neustarts im Vergleich zu AOF
Nachteile von RDB:
- Datenverlust zwischen Snapshots (bis zu mehreren Minuten)
- Der Fork-Vorgang kann bei grossen Datensaetzen langsam sein
AOF (Append Only File)
AOF protokolliert jede Schreiboperation fuer bessere Haltbarkeit:
appendonly yes
appendfilename "appendonly.aof"
Konfigurieren Sie die Synchronisierungsrichtlinie:
# appendfsync always # Nach jedem Schreibvorgang synchronisieren (sicherste, langsamste Option)
appendfsync everysec # Einmal pro Sekunde synchronisieren (empfohlen)
# appendfsync no # Synchronisierung dem Betriebssystem ueberlassen (schnellste, unsicherste Option)
Vorteile von AOF:
- Bessere Haltbarkeit (maximal 1 Sekunde Datenverlust mit
everysec) - Das Append-Only-Format ist korruptionsresistent
- Automatische Neufassung zur Komprimierung des Protokolls
Nachteile von AOF:
- Groessere Dateien im Vergleich zu RDB
- Langsamere Neustarts bei grossen Datensaetzen
Beide verwenden
Fuer maximale Datensicherheit aktivieren Sie sowohl RDB als auch AOF:
save 3600 1 300 100 60 10000
appendonly yes
appendfsync everysec
Wenn beide aktiviert sind, verwendet Redis die AOF-Datei zur Datenwiederherstellung beim Start, da sie in der Regel vollstaendiger ist.
Sicherheitshaertung
Eine ungesicherte Redis-Instanz stellt ein erhebliches Sicherheitsrisiko dar. Wenden Sie die folgenden Massnahmen fuer Produktionsbereitstellungen an.
Passwort festlegen
Konfigurieren Sie die Authentifizierung mit einem starken Passwort:
requirepass ihr-sehr-starkes-passwort-hier
Clients muessen sich authentifizieren, bevor sie Befehle ausfuehren koennen:
redis-cli
AUTH ihr-sehr-starkes-passwort-hier
Oder verbinden Sie sich mit dem Passwort direkt:
redis-cli -a ihr-sehr-starkes-passwort-hier
Gefaehrliche Befehle umbenennen
Deaktivieren oder benennen Sie Befehle um, die Schaden verursachen koennten:
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
rename-command CONFIG "ADMIN_CONFIG_b4f8e2a1"
Das Setzen eines Befehls auf eine leere Zeichenkette "" deaktiviert ihn vollstaendig. Das Umbenennen in eine lange zufaellige Zeichenkette macht ihn nur fuer Administratoren zugaenglich, die den neuen Namen kennen.
Netzwerkzugriff beschraenken
Binden Sie Redis immer an bestimmte Schnittstellen und verwenden Sie eine Firewall:
bind 127.0.0.1 192.168.1.100
protected-mode yes
Fuegen Sie eine UFW-Regel hinzu, um den Redis-Zugriff einzuschraenken:
sudo ufw allow from 192.168.1.0/24 to any port 6379
TLS aktivieren (Redis 6+)
Fuer verschluesselte Verbindungen konfigurieren Sie TLS:
tls-port 6380
port 0
tls-cert-file /etc/redis/tls/redis.crt
tls-key-file /etc/redis/tls/redis.key
tls-ca-cert-file /etc/redis/tls/ca.crt
Zertifikate fuer Tests generieren:
sudo mkdir -p /etc/redis/tls
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/redis/tls/redis.key \
-out /etc/redis/tls/redis.crt \
-subj "/CN=redis-server"
sudo cp /etc/redis/tls/redis.crt /etc/redis/tls/ca.crt
sudo chown redis:redis /etc/redis/tls/*
Mit TLS verbinden:
redis-cli --tls --cert /etc/redis/tls/redis.crt --key /etc/redis/tls/redis.key --cacert /etc/redis/tls/ca.crt -p 6380
Standardbenutzer deaktivieren (Redis 6+ ACLs)
Redis 6 hat Zugriffskontrolllisten (ACLs) fuer feingranulare Berechtigungen eingefuehrt:
redis-cli
ACL SETUSER admin on >starkes-passwort ~* +@all
ACL SETUSER default off
Dies erstellt einen Benutzer admin mit vollem Zugriff und deaktiviert den Standardbenutzer.
Datentypen und Operationen
Redis unterstuetzt mehrere Datenstrukturen, die jeweils fuer bestimmte Anwendungsfaelle optimiert sind.
Strings
Der grundlegendste Typ. Speichern Sie Text, Zahlen oder serialisierte Daten:
SET user:1:name "Alice"
GET user:1:name
# "Alice"
SET counter 100
INCR counter
# 101
SET session:abc123 "session_data" EX 3600
# Laeuft nach 3600 Sekunden ab
Hashes
Speichern Sie Objekte als Feld-Wert-Paare:
HSET user:1 name "Alice" email "alice@example.com" age 30
HGET user:1 name
# "Alice"
HGETALL user:1
# 1) "name"
# 2) "Alice"
# 3) "email"
# 4) "alice@example.com"
# 5) "age"
# 6) "30"
Listen
Geordnete Sammlungen (verkettete Listen), ideal fuer Warteschlangen:
LPUSH tasks "send_email"
LPUSH tasks "process_payment"
RPOP tasks
# "send_email"
LRANGE tasks 0 -1
# 1) "process_payment"
Sets
Ungeordnete Sammlungen eindeutiger Elemente:
SADD tags:post:1 "redis" "caching" "nosql"
SMEMBERS tags:post:1
# 1) "redis"
# 2) "caching"
# 3) "nosql"
SISMEMBER tags:post:1 "redis"
# 1
Sorted Sets
Nach Score geordnete Mengen, ideal fuer Bestenlisten:
ZADD leaderboard 100 "player1" 250 "player2" 175 "player3"
ZREVRANGE leaderboard 0 -1 WITHSCORES
# 1) "player2"
# 2) "250"
# 3) "player3"
# 4) "175"
# 5) "player1"
# 6) "100"
ZRANK leaderboard "player3"
# 1
Speicherverwaltung und Eviction-Richtlinien
Eine effektive Speicherverwaltung ist entscheidend fuer die Leistung und Stabilitaet von Redis.
Speichernutzung ueberwachen
redis-cli INFO memory
Wichtige Metriken im Blick:
| Metrik | Beschreibung |
|---|---|
used_memory | Gesamte von Redis zugewiesene Bytes |
used_memory_human | Speicherverbrauch in lesbarem Format |
used_memory_rss | Resident Set Size (tatsaechlich genutzter RAM) |
used_memory_peak | Spitzenwert der Speichernutzung |
mem_fragmentation_ratio | Verhaeltnis von RSS zu used_memory |
Ein mem_fragmentation_ratio deutlich ueber 1.5 weist auf Speicherfragmentierung hin. Werte unter 1.0 bedeuten, dass Redis auf die Festplatte auslagert (Swapping), was die Leistung massiv beeintraechtigt.
Speicherverbrauch reduzieren
Verwenden Sie kuerzere Schluesselnamen, wo es sinnvoll ist:
# Anstatt
SET user:session:authentication:token:abc123 "data"
# Verwenden Sie
SET u:s:t:abc123 "data"
Setzen Sie TTL auf Cache-Schluessel, um sicherzustellen, dass veraltete Daten entfernt werden:
SET cache:product:42 "product_data" EX 300
Verwenden Sie Hashes fuer kleine Objekte — Redis optimiert kleine Hashes mit Ziplist-Codierung:
HSET user:1 name "Alice" email "alice@example.com"
Aktivieren Sie Lazy Freeing, um Blockierungen beim Loeschen grosser Schluessel zu vermeiden:
lazyfree-lazy-eviction yes
lazyfree-lazy-expire yes
lazyfree-lazy-server-del yes
Speicherdefragmentierung (Redis 4+)
Aktivieren Sie die aktive Defragmentierung, um fragmentierten Speicher zurueckzugewinnen:
activedefrag yes
active-defrag-ignore-bytes 100mb
active-defrag-threshold-lower 10
active-defrag-threshold-upper 100
Ueberwachung mit redis-cli und dem INFO-Befehl
Redis bietet mehrere integrierte Werkzeuge zur Ueberwachung.
Der INFO-Befehl
Der Befehl INFO liefert umfassende Serverinformationen:
redis-cli INFO
Bestimmte Abschnitte abfragen:
redis-cli INFO server
redis-cli INFO memory
redis-cli INFO stats
redis-cli INFO replication
redis-cli INFO clients
redis-cli INFO keyspace
Echtzeitueberwachung
Alle von Redis verarbeiteten Befehle in Echtzeit beobachten:
redis-cli MONITOR
Achtung: Der MONITOR-Befehl verursacht Overhead und sollte nicht dauerhaft in der Produktion laufen. Verwenden Sie ihn nur fuer Debugging-Sitzungen.
Slow Log
Befehle identifizieren, die eine bestimmte Ausfuehrungszeit ueberschreiten:
redis-cli SLOWLOG GET 10
Den Slow-Log-Schwellenwert konfigurieren (in Mikrosekunden):
slowlog-log-slower-than 10000
slowlog-max-len 128
Dies protokolliert jeden Befehl, der laenger als 10 Millisekunden dauert.
Client-Verbindungen
Alle verbundenen Clients auflisten:
redis-cli CLIENT LIST
Gesamtzahl der Verbindungen pruefen:
redis-cli INFO clients
Wichtige Client-Metriken:
connected_clients:15
blocked_clients:0
maxclients:10000
Latenzueberwachung
Latenzueberwachung aktivieren und messen:
redis-cli CONFIG SET latency-monitor-threshold 100
redis-cli LATENCY LATEST
redis-cli LATENCY HISTORY event-name
Redis als Session-Speicher
Redis ist eine ausgezeichnete Wahl fuer die Speicherung von Anwendungssitzungen und ermoeglicht die gemeinsame Nutzung von Sitzungen ueber mehrere Server hinweg.
Node.js-Beispiel mit Express
const express = require('express');
const session = require('express-session');
const RedisStore = require('connect-redis').default;
const { createClient } = require('redis');
const redisClient = createClient({
url: 'redis://127.0.0.1:6379',
password: 'your-redis-password'
});
redisClient.connect();
const app = express();
app.use(session({
store: new RedisStore({ client: redisClient }),
secret: 'your-session-secret',
resave: false,
saveUninitialized: false,
cookie: {
secure: true,
httpOnly: true,
maxAge: 1800000 // 30 Minuten
}
}));
app.get('/', (req, res) => {
req.session.views = (req.session.views || 0) + 1;
res.send(`Views: ${req.session.views}`);
});
app.listen(3000, () => console.log('Server running on port 3000'));
Python-Beispiel mit Flask
from flask import Flask, session
from flask_session import Session
import redis
app = Flask(__name__)
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = redis.Redis(
host='127.0.0.1',
port=6379,
password='your-redis-password'
)
app.config['SESSION_PERMANENT'] = True
app.config['PERMANENT_SESSION_LIFETIME'] = 1800 # 30 Minuten
Session(app)
@app.route('/')
def index():
session['views'] = session.get('views', 0) + 1
return f"Views: {session['views']}"
if __name__ == '__main__':
app.run()
Referenz der wichtigsten redis-cli-Befehle
| Befehl | Beschreibung |
|---|---|
redis-cli ping | Serverkonnektivitaet testen |
redis-cli INFO | Serverinformationen und Statistiken anzeigen |
redis-cli INFO memory | Details zur Speichernutzung anzeigen |
redis-cli MONITOR | Alle Befehle in Echtzeit beobachten |
redis-cli DBSIZE | Anzahl der Schluessel in der aktuellen Datenbank zurueckgeben |
redis-cli KEYS pattern | Schluessel nach Muster suchen (in der Produktion mit Vorsicht verwenden) |
redis-cli SCAN 0 MATCH pattern COUNT 100 | Schluessel iterativ scannen (produktionssichere Alternative zu KEYS) |
redis-cli SET key value EX seconds | Schluessel mit Ablaufzeit setzen |
redis-cli GET key | Wert eines Schluessels abrufen |
redis-cli DEL key | Einen oder mehrere Schluessel loeschen |
redis-cli TTL key | Verbleibende Lebenszeit eines Schluessels pruefen |
redis-cli EXPIRE key seconds | Ablaufzeit fuer einen Schluessel festlegen |
redis-cli FLUSHDB | Alle Schluessel aus der aktuellen Datenbank entfernen |
redis-cli SLOWLOG GET 10 | Die 10 letzten langsamen Abfragen anzeigen |
redis-cli CLIENT LIST | Alle verbundenen Clients auflisten |
redis-cli CONFIG GET maxmemory | Einen Konfigurationsparameter abrufen |
redis-cli CONFIG SET maxmemory 512mb | Einen Konfigurationsparameter zur Laufzeit aendern |
redis-cli BGSAVE | Einen RDB-Snapshot im Hintergrund ausloesen |
redis-cli BGREWRITEAOF | Eine AOF-Neufassung ausloesen |
redis-cli SHUTDOWN SAVE | Server stoppen und Daten auf die Festplatte speichern |
Fehlerbehebung
Redis startet nicht
Pruefen Sie die Protokolle auf Fehler:
sudo journalctl -u redis-server -n 50
sudo cat /var/log/redis/redis-server.log
Haeufige Ursachen:
- Syntaxfehler in
redis.conf— validieren Sie die Konfigurationsdatei - Port bereits belegt — pruefen Sie mit
sudo ss -tlnp | grep 6379 - Unzureichender Arbeitsspeicher — pruefen Sie den verfuegbaren RAM mit
free -h
Hohe Speichernutzung
redis-cli INFO memory
redis-cli MEMORY DOCTOR
Wenn mem_fragmentation_ratio ueber 1.5 liegt:
- Aktivieren Sie die aktive Defragmentierung
- Starten Sie Redis neu, um fragmentierten Speicher zurueckzugewinnen
Wenn used_memory sich maxmemory naehert:
- Ueberpruefen und passen Sie die Eviction-Richtlinie an
- Setzen Sie TTL-Werte auf Cache-Schluessel
- Erhoehen Sie das
maxmemory-Limit
Verbindung abgelehnt
Ueberpruefen Sie, ob Redis auf der erwarteten Schnittstelle lauscht:
sudo ss -tlnp | grep redis
Pruefen Sie die bind-Direktive in redis.conf und stellen Sie sicher, dass Ihre Firewall Verbindungen zulaesst:
sudo ufw status | grep 6379
Langsame Leistung
Untersuchen Sie mit dem Slow Log:
redis-cli SLOWLOG GET 25
Suchen Sie nach grossen Schluesseln, die blockieren koennten:
redis-cli --bigkeys
Vermeiden Sie KEYS * in der Produktion. Verwenden Sie stattdessen SCAN:
redis-cli SCAN 0 MATCH "user:*" COUNT 100
Persistenzfehler
Wenn RDB-Snapshots fehlschlagen:
redis-cli INFO persistence
Suchen Sie nach rdb_last_bgsave_status:err. Gaengige Loesungen:
- Stellen Sie sicher, dass das Redis-Datenverzeichnis beschreibbar ist:
sudo chown redis:redis /var/lib/redis - Ueberpruefen Sie den verfuegbaren Speicherplatz:
df -h /var/lib/redis - Pruefen Sie die Overcommit-Einstellungen:
sudo sysctl vm.overcommit_memory=1
Zusammenfassung
Redis ist ein leistungsstarker In-Memory-Datenspeicher, der die Performance Ihrer Anwendung erheblich verbessern kann, wenn er als Caching-Schicht, Session-Speicher oder Message Broker eingesetzt wird. Durch die korrekte Konfiguration von Speicherlimits, Eviction-Richtlinien, Persistenz und Sicherheitseinstellungen koennen Sie Redis zuverlaessig in Produktionsumgebungen betreiben.
Wichtige Erkenntnisse:
- Installieren Sie Redis aus dem offiziellen Repository fuer die neueste stabile Version
- Setzen Sie immer
maxmemoryund eine geeignete Eviction-Richtlinie, um unkontrolliertes Speicherwachstum zu verhindern - Waehlen Sie Ihre Persistenzstrategie basierend auf den Anforderungen an die Haltbarkeit — RDB fuer periodische Snapshots, AOF fuer nahezu Echtzeit-Haltbarkeit oder beide
- Haerten Sie Redis mit Passwort-Authentifizierung, Netzwerkbindungsbeschraenkungen und umbenannten gefaehrlichen Befehlen
- Ueberwachen Sie die Leistung mit
INFO,SLOWLOGundredis-cli --bigkeys, um Probleme fruehzeitig zu erkennen - Verwenden Sie
SCANanstelle vonKEYSin der Produktion, um den Server nicht zu blockieren
Fuer eine umfassende Server-Sicherheitskonfiguration lesen Sie unsere Anleitungen zur UFW-Firewall-Konfiguration und zur Sicherheitscheckliste fuer Linux-Server.