redis-cli — Der Kommandozeilen-Client für Redis

Praxis-Guide zu redis-cli — interaktiver Client für Redis und Valkey: Keys und Datenstrukturen verwalten, Pub/Sub nutzen und den Server überwachen.

redis-cli ist der interaktive Kommandozeilen-Client für Redis – und genauso für den kompatiblen Fork Valkey. Mit ihm verbindest du dich zu einem In-Memory-Datastore und arbeitest direkt mit Keys und Datenstrukturen wie Strings, Hashes, Listen, Sets und Sorted Sets. Darüber hinaus nutzt du Pub/Sub für Nachrichten, überwachst den Server im laufenden Betrieb und importierst Befehle im Bulk. Dieser Guide zeigt dir die wichtigsten Befehle für den Alltag, vom Verbindungsaufbau über die typischen Datentyp-Operationen bis zum Monitoring.

Verbinden

redis-cli — Verbindet sich mit einem lokalen Redis (localhost:6379).

redis-cli

redis-cli -h <host> -p <port> — Verbindet sich mit einem entfernten Redis-Server.

redis-cli -h redis.example.com -p 6379

redis-cli -a <password> — Verbindet sich mit Authentifizierung.

redis-cli -a mysecretpassword

redis-cli -u <uri> — Verbindet sich über eine Redis-URI.

redis-cli -u redis://user:pass@host:6379/0

redis-cli -n <db> — Wählt eine bestimmte Datenbank-Nummer aus.

redis-cli -n 2

redis-cli --tls — Verbindet sich mit TLS-Verschlüsselung.

redis-cli --tls -h redis.example.com

Keys und Strings

SET <key> <value> — Setzt einen Key auf einen String-Wert.

SET user:1:name "John"

GET <key> — Liest den Wert eines Keys aus.

GET user:1:name

SET <key> <value> EX <seconds> — Setzt einen Key mit Ablaufzeit.

SET session:abc123 "data" EX 3600

DEL <key> — Löscht einen oder mehrere Keys.

DEL user:1:name user:1:email

KEYS <pattern> — Findet Keys, die zu einem Muster passen (in Produktion mit Vorsicht einsetzen).

KEYS user:*

SCAN <cursor> MATCH <pattern> COUNT <n> — Iteriert sicher über Keys (produktionstauglich).

SCAN 0 MATCH user:* COUNT 100

TTL <key> — Zeigt die verbleibende Lebensdauer in Sekunden an.

TTL session:abc123

INCR <key> — Erhöht einen numerischen Wert um 1.

INCR page:views

Hashes und Listen

HSET <key> <field> <value> — Setzt ein Feld in einem Hash.

HSET user:1 name "John" email "john@example.com"

HGET <key> <field> — Liest den Wert eines Feldes aus einem Hash.

HGET user:1 name

HGETALL <key> — Liest alle Felder und Werte eines Hashes aus.

HGETALL user:1

LPUSH <key> <value> — Fügt einen Wert am linken Ende einer Liste ein.

LPUSH queue:tasks "task1"

RPOP <key> — Entnimmt einen Wert am rechten Ende einer Liste.

RPOP queue:tasks

LRANGE <key> <start> <stop> — Liest einen Bereich von Elementen aus einer Liste.

LRANGE queue:tasks 0 -1

LLEN <key> — Zeigt die Länge einer Liste an.

LLEN queue:tasks

Sets und Sorted Sets

SADD <key> <member> — Fügt ein Element zu einem Set hinzu.

SADD tags:post:1 "redis" "database" "cache"

SMEMBERS <key> — Liest alle Elemente eines Sets aus.

SMEMBERS tags:post:1

SISMEMBER <key> <member> — Prüft, ob ein Wert in einem Set enthalten ist.

SISMEMBER tags:post:1 "redis"

ZADD <key> <score> <member> — Fügt ein Element mit Score zu einem Sorted Set hinzu.

ZADD leaderboard 100 "player1" 200 "player2"

ZRANGE <key> <start> <stop> WITHSCORES — Liest Elemente eines Sorted Sets nach Rang aus.

ZRANGE leaderboard 0 -1 WITHSCORES

Server und Monitoring

INFO — Zeigt Server-Informationen und Statistiken an.

INFO server

INFO memory — Zeigt Statistiken zur Speichernutzung an.

INFO memory

DBSIZE — Zeigt die Anzahl der Keys in der aktuellen Datenbank an.

DBSIZE

MONITOR — Streamt alle vom Server empfangenen Befehle in Echtzeit.

MONITOR

SLOWLOG GET <n> — Zeigt die letzten N langsamen Abfragen an.

SLOWLOG GET 10

FLUSHDB — Löscht alle Keys in der aktuellen Datenbank (irreversibel).

FLUSHDB

BGSAVE — Stößt eine Sicherung auf die Festplatte im Hintergrund an.

BGSAVE

Pub/Sub und Scripting

SUBSCRIBE <channel> — Abonniert einen Channel, um Nachrichten zu empfangen.

SUBSCRIBE notifications

PUBLISH <channel> <message> — Veröffentlicht eine Nachricht auf einem Channel.

PUBLISH notifications "New order received"

PSUBSCRIBE <pattern> — Abonniert Channels, die zu einem Muster passen.

PSUBSCRIBE user:*

redis-cli --pipe < <file> — Importiert Redis-Befehle im Bulk aus einer Datei.

redis-cli --pipe < commands.txt

Fazit

redis-cli ist das Schweizer Taschenmesser für den Alltag mit Redis und Valkey: vom schnellen GET/SET über Datenstruktur-Operationen bis zum Live-Monitoring mit MONITOR und INFO. Sei vorsichtig bei den destruktiven Befehlen: FLUSHALL und FLUSHDB löschen alle Keys (einer ganzen Instanz bzw. der aktuellen Datenbank) unwiderruflich. Vermeide KEYS * in Produktion – der Befehl blockiert den Server, bis alle Keys durchsucht sind; nutze stattdessen SCAN oder redis-cli --scan. Übergib Passwörter besser über die Umgebungsvariable REDISCLI_AUTH statt im Klartext, denn -a taucht in der Shell-History und in der Prozessliste auf. Auch CONFIG SET ändert das Laufzeitverhalten live – ein Tippfehler trifft sofort die ganze Instanz.

Verwandte Kommandos

  • artisan – Kommandozeilen-Tool des Laravel-Frameworks
  • cargo – Paketmanager und Build-Tool für Rust
  • composer – Abhängigkeitsverwaltung für PHP