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-cliredis-cli -h <host> -p <port> — Verbindet sich mit einem entfernten Redis-Server.
redis-cli -h redis.example.com -p 6379redis-cli -a <password> — Verbindet sich mit Authentifizierung.
redis-cli -a mysecretpasswordredis-cli -u <uri> — Verbindet sich über eine Redis-URI.
redis-cli -u redis://user:pass@host:6379/0redis-cli -n <db> — Wählt eine bestimmte Datenbank-Nummer aus.
redis-cli -n 2redis-cli --tls — Verbindet sich mit TLS-Verschlüsselung.
redis-cli --tls -h redis.example.comKeys 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:nameSET <key> <value> EX <seconds> — Setzt einen Key mit Ablaufzeit.
SET session:abc123 "data" EX 3600DEL <key> — Löscht einen oder mehrere Keys.
DEL user:1:name user:1:emailKEYS <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 100TTL <key> — Zeigt die verbleibende Lebensdauer in Sekunden an.
TTL session:abc123INCR <key> — Erhöht einen numerischen Wert um 1.
INCR page:viewsHashes 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 nameHGETALL <key> — Liest alle Felder und Werte eines Hashes aus.
HGETALL user:1LPUSH <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:tasksLRANGE <key> <start> <stop> — Liest einen Bereich von Elementen aus einer Liste.
LRANGE queue:tasks 0 -1LLEN <key> — Zeigt die Länge einer Liste an.
LLEN queue:tasksSets 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:1SISMEMBER <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 WITHSCORESServer und Monitoring
INFO — Zeigt Server-Informationen und Statistiken an.
INFO serverINFO memory — Zeigt Statistiken zur Speichernutzung an.
INFO memoryDBSIZE — Zeigt die Anzahl der Keys in der aktuellen Datenbank an.
DBSIZEMONITOR — Streamt alle vom Server empfangenen Befehle in Echtzeit.
MONITORSLOWLOG GET <n> — Zeigt die letzten N langsamen Abfragen an.
SLOWLOG GET 10FLUSHDB — Löscht alle Keys in der aktuellen Datenbank (irreversibel).
FLUSHDBBGSAVE — Stößt eine Sicherung auf die Festplatte im Hintergrund an.
BGSAVEPub/Sub und Scripting
SUBSCRIBE <channel> — Abonniert einen Channel, um Nachrichten zu empfangen.
SUBSCRIBE notificationsPUBLISH <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.
Weiterführende Links
- Redis-Dokumentation – offizielle Referenz zu redis-cli, Befehlen und Datentypen (englisch)
- redis-cli – Command-Line-Interface – ausführliche Anleitung zum Client (englisch)
- Valkey-Dokumentation – offene Redis-kompatible Alternative (englisch)