Appearance
Kapitel 4: Redis Grundbefehle
In diesem Kapitel lernst du die wichtigsten Grundbefehle von Redis, die für die Arbeit mit Redis unerlässlich sind.
4.1 Befehlszeilen-Grundregeln (Anfänger müssen diese einhalten)
Befehlsformat
BEFEHL Schlüssel [Parameter]Wichtige Regeln:
- ✅ Befehle sind nicht case-sensitiv (groß oder klein schreiben ist egal)
- ✅ Empfohlen: Befehle in Großbuchstaben schreiben (Konvention)
- ✅ Leerzeichen zwischen Befehl, Schlüssel und Parametern
Beispiele:
bash
# Alle folgenden sind gültig und identisch
SET name "Max"
set name "Max"
Set name "Max"Hilfe-Befehl (unverzichtbar für Anfänger)
bash
# Hilfe zu einem bestimmten Befehl anzeigen
HELP SET
HELP GET
HELP HSET
# Alle Befehle gruppiert anzeigen
HELP @string
HELP @hash
HELP @listBeenden des Redis-Clients
bash
# Methode 1: QUIT-Befehl
QUIT
# Methode 2: Strg + C
# (beendet redis-cli)4.2 Datenbank-Befehle (Kernbefehle)
Datenbank wechseln
bash
# Zur Datenbank 1 wechseln
SELECT 1
# Zur Datenbank 0 wechseln (Standard)
SELECT 0Hinweis: Redis hat standardmäßig 16 Datenbanken (0-15).
Anzahl der Schlüssel in der aktuellen Datenbank anzeigen
bash
DBSIZE
# Ausgabe: (integer) 5 (5 Schlüssel in der aktuellen Datenbank)Aktuelle Datenbank leeren (vorsichtig verwenden)
bash
# Löscht ALLE Schlüssel in der aktuellen Datenbank
FLUSHDB⚠️ Warnung: Dieser Befehl kann nicht rückgängig gemacht werden!
Alle Datenbanken leeren (extrem vorsichtig)
bash
# Löscht ALLE Schlüssel in ALLEN Datenbanken
FLUSHALL⚠️ WARNUNG: Dieser Befehl löscht ALLE Daten in Redis! Nur in Entwicklungsumgebungen verwenden!
4.3 Schlüssel-Befehle (Kern, für alle Datentypen)
Alle Schlüssel anzeigen
bash
KEYS *
# Zeigt alle Schlüssel in der aktuellen Datenbank an⚠️ Warnung: KEYS * bei großen Datenmengen kann die Leistung beeinträchtigen! In der Produktion nicht verwenden.
Bessere Alternative (Redis 2.8+):
bash
# Schlüssel schrittweise durchsuchen (sicherer)
SCAN 0Prüfen, ob ein Schlüssel existiert
bash
EXISTS name
# Ausgabe: (integer) 1 (existiert)
# Ausgabe: (integer) 0 (existiert nicht)
# Mehrere Schlüssel gleichzeitig prüfen
EXISTS name age email
# Ausgabe: (integer) 3 (3 Schlüssel existieren)Schlüssel löschen
bash
# Einen Schlüssel löschen
DEL name
# Mehrere Schlüssel gleichzeitig löschen
DEL name age email
# Rückgabewert: Anzahl der gelöschten SchlüsselDatentyp eines Schlüssels anzeigen
bash
TYPE name
# Mögliche Ausgaben:
# string, hash, list, set, zset, none (existiert nicht)Ablaufzeit für einen Schlüssel setzen
bash
# Ablaufzeit in Sekunden setzen
EXPIRE name 30
# Der Schlüssel "name" läuft in 30 Sekunden ab
# Ablaufzeit mit Zeitstempel (Unix-Timestamp)
EXPIREAT name 1769990400Verbleibende Ablaufzeit anzeigen
bash
TTL name
# Mögliche Ausgaben:
# -2: Schlüssel existiert nicht oder ist abgelaufen
# -1: Kein Ablaufzeit gesetzt (unbefristet)
# n: Verbleibende Sekunden bis zum AblaufBeispiel:
bash
SET name "Max"
EXPIRE name 60
TTL name
# Ausgabe: (integer) 58 (noch 58 Sekunden)Ablaufzeit entfernen (unbefristet machen)
bash
PERSIST name
# Entfernt die Ablaufzeit von "name"Schlüssel umbenennen
bash
RENAME alt_name neu_name
# Benennt "alt_name" in "neu_name" um
RENAMENX alt_name neu_name
# Benennt nur um, wenn "neu_name" noch nicht existiertPraxisbeispiel: Datenbank- und Schlüssel-Befehle üben
bash
# 1. Mit Redis verbinden
redis-cli
# 2. Zur Datenbank 1 wechseln
SELECT 1
# 3. Einige Schlüssel setzen
SET user:1 "Max"
SET user:2 "Anna"
HSET product:1 name "Laptop" price 999
# 4. Anzahl der Schlüssel anzeigen
DBSIZE
# 5. Alle Schlüssel anzeigen
KEYS *
# 6. Prüfen, ob ein Schlüssel existiert
EXISTS user:1
# 7. Datentyp eines Schlüssels anzeigen
TYPE user:1
TYPE product:1
# 8. Ablaufzeit setzen
EXPIRE user:1 100
TTL user:1
# 9. Ablaufzeit entfernen
PERSIST user:1
TTL user:1
# 10. Schlüssel löschen
DEL user:2
# 11. Zurück zur Datenbank 0 wechseln
SELECT 0Anfänger-Fehlerquellen
Fehler 1: Befehle falsch geschrieben
bash
# Falsch
SETT name "Max"
# Richtig
SET name "Max"Fehler 2: FLUSHDB/FLUSHALL versehentlich verwendet
Lösung: Sei extrem vorsichtig mit diesen Befehlen! Verwende sie niemals in Produktionsumgebungen ohne Bestätigung.
Fehler 3: Ablaufzeit-Einheit verwechselt
bash
# EXPIRE verwendet SEKUNDEN, nicht Millisekunden!
EXPIRE name 60 # 60 Sekunden, nicht 60 MillisekundenFehler 4: KEYS * in Produktionsumgebungen verwendet
Lösung: Verwende SCAN statt KEYS * in Produktionsumgebungen.
Zusammenfassung
In diesem Kapitel haben wir:
- ✅ Die Grundregeln der Redis-Befehlszeile verstanden
- ✅ Datenbank-Befehle gemeistert (SELECT, DBSIZE, FLUSHDB, FLUSHALL)
- ✅ Kern-Schlüssel-Befehle gemeistert (KEYS, EXISTS, DEL, TYPE, EXPIRE, TTL, PERSIST)
- ✅ Häufige Anfängerfehler kennengelernt
Im nächsten Kapitel werden wir die String-Befehle im Detail lernen!
Übungen
Theoretische Fragen:
- Was ist der Unterschied zwischen FLUSHDB und FLUSHALL?
- Warum sollte man KEYS * in Produktionsumgebungen vermeiden?
- Was bedeutet der Rückgabewert -1 oder -2 bei TTL?
Praktische Übung:
- Verbinde dich mit redis-cli
- Wechsle zur Datenbank 2
- Erstelle 5 verschiedene Schlüssel
- Übe alle Schlüssel-Befehle aus diesem Kapitel
- Setze Ablaufzeiten und beobachte die TTL
Fehlerbehebung:
- Simuliere einen Fehler (z.B. falscher Befehl)
- Verstehe die Fehlermeldung
- Korrigiere den Fehler
