Skip to content

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 @list

Beenden 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 0

Hinweis: 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 0

Prü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üssel

Datentyp 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 1769990400

Verbleibende 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 Ablauf

Beispiel:

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 existiert

Praxisbeispiel: 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 0

Anfä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 Millisekunden

Fehler 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

  1. 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?
  2. 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
  3. Fehlerbehebung:

    • Simuliere einen Fehler (z.B. falscher Befehl)
    • Verstehe die Fehlermeldung
    • Korrigiere den Fehler

Frei für alle Anfänger