Generische API
Verbindungsbefehle
AUTH
Syntax
AUTH <placeholderforpassword>
Authentifiziert die Verbindung.
Resp Reply
Einfache String-Antwort: OK oder ein Fehler, wenn das Passwort oder das Benutzername/Passwort-Paar ungültig ist.
Sicherheitshinweis
Verwenden Sie nur starke und lange Passwörter, damit ein Angriff undurchführbar ist. Ein besserer Weg zur Verwaltung der Authentifizierung ist die Verwendung der ACL-Funktion.
ECHO
Syntax
ECHO <message>
Gibt die Nachricht zurück.
Resp Reply
Bulk-String-Antwort: der angegebene String.
HELLO
Syntax
HELLO [protover [AUTH username password] [SETNAME clientname]]
Wechselt zu einem anderen Protokoll, authentifiziert optional und setzt den Verbindungsnamen oder stellt einen kontextbezogenen Client-Bericht bereit.
Wenn dieser Befehl mit dem optionalen Argument protover aufgerufen wird, wechselt er das Protokoll zur angegebenen Version und akzeptiert auch die folgenden Optionen
AUTH <username> <password>: Authentifiziert die Verbindung direkt zusätzlich zum Wechsel zur angegebenen Protokollversion. Dadurch ist es nicht mehr notwendig, AUTH vor HELLO aufzurufen, wenn eine neue Verbindung eingerichtet wird. Beachten Sie, dass der Benutzername auf "default" gesetzt werden kann, um gegen einen Server zu authentifizieren, der keine ACLs verwendet, sondern den einfacheren requirepass-Mechanismus von Redis vor Version 6. SETNAME <clientname>: Dies ist das Äquivalent zum Aufruf von CLIENT SETNAME.
RESP-Antwort
Map-Antwort: eine Liste von Servereigenschaften. Einfache Fehlerantwort: wenn das angeforderte protover nicht existiert.
PING
Syntax
PING key
Gibt PONG zurück, wenn kein Argument angegeben wird, andernfalls wird eine Kopie des Arguments als Bulk-String zurückgegeben.
RESP-Antwort
Eine der folgenden
- Einfache String-Antwort: PONG, wenn kein Argument angegeben wird.
- Bulk-String-Antwort: das bereitgestellte Argument.
QUIT
Syntax
QUIT
Fordert den Server auf, die Verbindung zu schließen. Die Verbindung wird geschlossen, wenn alle ausstehenden Antworten an den Client geschrieben wurden.
RESP-Antwort
Einfache Zeichenketten-Antwort: OK.
SELECT
Syntax
SELECT
Wählt die logische Redis-Datenbank mit dem angegebenen nullbasierten numerischen Index aus. Neue Verbindungen verwenden immer die Datenbank 0.
RESP-Antwort
Einfache Zeichenketten-Antwort: OK.
Allgemeine Befehle
DEL
Syntax
DEL key [key ...]
Entfernt die angegebenen Schlüssel. Ein Schlüssel wird ignoriert, wenn er nicht existiert.
RESP-Antwort
Integer-Antwort: die Anzahl der entfernten Schlüssel.
EXISTS
Syntax
EXISTS key [key ...]
Bestimmt, ob ein oder mehrere Schlüssel existieren. Wenn derselbe vorhandene Schlüssel mehrmals in den Argumenten erwähnt wird, wird er mehrmals gezählt. Wenn also foo existiert, gibt EXISTS foo foo 2 zurück.
RESP-Antwort
Integer-Antwort: die Anzahl der Schlüssel, die aus den als Argumente angegebenen vorhanden sind.
EXPIRE
Syntax
EXPIRE key seconds [NX | XX | GT | LT]
Setzt ein Zeitlimit für einen Schlüssel in Sekunden. Nach Ablauf des Zeitlimits wird der Schlüssel automatisch gelöscht.
Der Befehl EXPIRE unterstützt eine Reihe von Optionen
NX-- Setzt den Ablauf nur, wenn der Schlüssel keinen Ablauf hatXX-- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hatGT-- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle istLT-- Setzt den Ablauf nur, wenn der neue Ablauf kleiner als der aktuelle ist
Die Optionen GT, LT und NX sind gegenseitig ausschließend.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: 0, wenn das Zeitlimit nicht gesetzt wurde; zum Beispiel existiert der Schlüssel nicht, oder der Vorgang wurde aufgrund der bereitgestellten Argumente übersprungen.
- Integer-Antwort: 1, wenn das Zeitlimit gesetzt wurde.
EXPIREAT
Syntax
EXPIREAT key seconds [NX | XX | GT | LT]
Setzt ein Zeitlimit für einen Schlüssel unter Verwendung eines absoluten Unix-Timestamps (Sekunden seit dem 1. Januar 1970) in Sekunden. Nach dem Zeitstempel wird der Schlüssel automatisch gelöscht.
Der Befehl EXPIREAT unterstützt eine Reihe von Optionen
NX-- Setzt den Ablauf nur, wenn der Schlüssel keinen Ablauf hatXX-- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hatGT-- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle istLT-- Setzt den Ablauf nur, wenn der neue Ablauf kleiner als der aktuelle ist
Die Optionen GT, LT und NX sind gegenseitig ausschließend.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: 0, wenn das Zeitlimit nicht gesetzt wurde; zum Beispiel existiert der Schlüssel nicht, oder der Vorgang wurde aufgrund der bereitgestellten Argumente übersprungen.
- Integer-Antwort: 1, wenn das Zeitlimit gesetzt wurde.
EXPIRETIME
Syntax
EXPIRETIME key
Gibt den absoluten Unix-Timestamp (seit dem 1. Januar 1970) in Sekunden zurück, zu dem der angegebene Schlüssel abläuft.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: Ablauf-Unix-Timestamp in Millisekunden.
- Integer-Antwort: -1, wenn der Schlüssel existiert, aber keinen zugehörigen Ablaufzeitpunkt hat.
- Integer-Antwort: -2, wenn der Schlüssel nicht existiert.
KEYS
Syntax
KEYS pattern
Gibt alle Schlüssel zurück, die dem Muster entsprechen.
Warnung: Betrachten Sie KEYS als einen Befehl, der in Produktionsumgebungen nur mit äußerster Vorsicht verwendet werden sollte. Er kann die Leistung beeinträchtigen, wenn er gegen große Datenbanken ausgeführt wird.
Beispiele für unterstützte Muster
- h?llo passt auf hello, hallo und hxllo
- h*llo passt auf hllo und heeeello
- h[ae]llo passt auf hello und hallo, aber nicht hillo
- h[^e]llo passt auf hallo, hbllo, ... aber nicht hello
- h[a-b]llo passt auf hallo und hbllo
Verwenden Sie \, um Sonderzeichen zu maskieren, wenn Sie sie wörtlich abgleichen möchten.
RESP-Antwort
Array-Antwort: eine Liste von Schlüsseln, die dem Muster entsprechen.
MIGRATE
TODO: Syntax und Funktionalität prüfen
RESP-Antwort
PERSIST
Syntax
PERSIST key
Entfernt das vorhandene Zeitlimit für einen Schlüssel und wandelt den Schlüssel von flüchtig (ein Schlüssel mit einem gesetzten Ablauf) in persistent (ein Schlüssel, der niemals abläuft, da kein Zeitlimit damit verbunden ist) um.
RESP-Antwort
PEXPIRE
Syntax
PEXPIRE key milliseconds [NX | XX | GT | LT]
Dieser Befehl funktioniert genau wie EXPIRE, aber die Lebensdauer des Schlüssels wird in Millisekunden statt in Sekunden angegeben.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: 0, wenn der Schlüssel nicht existiert oder keinen zugehörigen Ablaufzeitpunkt hat.
- Integer-Antwort: 1, wenn das Zeitlimit entfernt wurde.
PEXPIRETIME
Syntax
PEXPIRETIME key
Gibt den absoluten Unix-Timestamp (seit dem 1. Januar 1970) in Millisekunden zurück, zu dem der angegebene Schlüssel abläuft.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: Ablauf-Unix-Timestamp in Millisekunden.
- Integer-Antwort: -1, wenn der Schlüssel existiert, aber keinen zugehörigen Ablaufzeitpunkt hat.
- Integer-Antwort: -2, wenn der Schlüssel nicht existiert.
PEXPIREAT
Syntax
PEXPIREAT key seconds [NX | XX | GT | LT]
Setzt ein Zeitlimit für einen Schlüssel unter Verwendung eines absoluten Unix-Timestamps (Sekunden seit dem 1. Januar 1970) in Millisekunden. Nach dem Zeitstempel wird der Schlüssel automatisch gelöscht.
Der Befehl PEXPIREAT unterstützt eine Reihe von Optionen
NX-- Setzt den Ablauf nur, wenn der Schlüssel keinen Ablauf hatXX-- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hatGT-- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle istLT-- Setzt den Ablauf nur, wenn der neue Ablauf kleiner als der aktuelle ist
Die Optionen GT, LT und NX sind gegenseitig ausschließend.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: 0, wenn das Zeitlimit nicht gesetzt wurde; zum Beispiel existiert der Schlüssel nicht, oder der Vorgang wurde aufgrund der bereitgestellten Argumente übersprungen.
- Integer-Antwort: 1, wenn das Zeitlimit gesetzt wurde.
PTTL
Syntax
PTTL key
Ähnlich wie TTL gibt dieser Befehl die verbleibende Lebensdauer eines Schlüssels zurück, der einen Ablaufzeitpunkt hat, mit dem einzigen Unterschied, dass TTL die verbleibende Zeit in Sekunden zurückgibt, während PTTL sie in Millisekunden zurückgibt.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: TTL in Millisekunden.
- Integer-Antwort: -1, wenn der Schlüssel existiert, aber keine zugehörige Ablaufzeit hat.
- Integer-Antwort: -2, wenn der Schlüssel nicht existiert.
RENAME
Syntax
RENAME key newkey [WITHETAG]
Benennt den Schlüssel in newkey um. Es wird ein Fehler zurückgegeben, wenn der Schlüssel nicht existiert. Wenn newkey bereits existiert, wird er überschrieben. Wenn dies geschieht, führt RENAME eine implizite DEL-Operation aus.
Optionen:
- WITHETAG - Wenn newkey nicht existierte, wird newkey nach der Umbenennung eine ETag zugeordnet. Wenn newkey zuvor mit einer ETag existierte, aktualisiert RENAME die ETag. Wenn newkey zuvor ohne eine ETag existierte, hätte newkey nach der Umbenennung eine ETag zugeordnet. Sie können mehr über ETags hier lesen.
RESP-Antwort
Einfache Zeichenketten-Antwort: OK.
RENAMENX
Syntax
RENAMENX key newkey [WITHETAG]
Benennt den Schlüssel in newkey um, wenn newkey noch nicht existiert. Es wird ein Fehler zurückgegeben, wenn der Schlüssel nicht existiert.
Optionen:
- WITHETAG - newkey wird nach der Umbenennung eine ETag zugeordnet. Sie können mehr über ETags hier lesen.
RESP-Antwort
Eine der folgenden
- Integer-Antwort: 1, wenn der Schlüssel in newkey umbenannt wurde.
- Integer-Antwort: 0, wenn newkey bereits existiert.
SCAN
Syntax
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
Iteriert über die Schlüssel, die im Speicher vorhanden sind, und gibt nur diejenigen zurück, die den ausgewählten Filtern entsprechen.
Die Option MATCH Es ist möglich, nur Elemente zu durchlaufen, die einem bestimmten glob-ähnlichen Muster entsprechen, ähnlich dem Verhalten des Befehls KEYS, der ein Muster als einziges Argument nimmt.
Die Option TYPE Sie können die Option TYPE verwenden, damit SCAN nur Objekte zurückgibt, die einem bestimmten Typ entsprechen, und so die Datenbank nach Schlüsseln eines bestimmten Typs durchsuchen.
Die Option COUNT
Der Standardwert für COUNT ist 10, aber der Benutzer kann ihn frei ändern.
RESP-Antwort
Array-Antwort: genauer gesagt, ein Array mit zwei Elementen.
- Das erste Element ist eine Bulk-String-Antwort, die eine vorzeichenlose 64-Bit-Zahl darstellt, den Cursor.
- Das zweite Element ist eine Array-Antwort mit den Namen der gescannten Schlüssel.
TTL
Syntax
TTL key
Gibt die verbleibende Lebensdauer eines Schlüssels zurück, der ein Zeitlimit hat.
Resp Reply
Eine der folgenden
- Integer-Antwort: TTL in Sekunden.
- Integer-Antwort: -1, wenn der Schlüssel existiert, aber keine zugehörige Ablaufzeit hat.
- Integer-Antwort: -2, wenn der Schlüssel nicht existiert.
TYPE
Syntax
TYPE key
Gibt die String-Darstellung des Typs des Werts zurück, der unter Schlüssel gespeichert ist. Die verschiedenen Typen, die zurückgegeben werden können, sind: string, list, set, zset und hash.
Resp-Antwort
Einfache String-Antwort: der Typ des Schlüssels, oder none, wenn der Schlüssel nicht existiert.
UNLINK
Syntax
Dieser Befehl ist DEL sehr ähnlich: er entfernt die angegebenen Schlüssel. Genau wie DEL wird ein Schlüssel ignoriert, wenn er nicht existiert. Der Befehl führt jedoch die eigentliche Speicherbereinigung in einem anderen Thread durch, so dass er nicht blockiert, während DEL dies tut.
Resp-Antwort
Integer-Antwort: die Anzahl der entlinkten Schlüssel.
DUMP
[!WICHTIG]
DUMP unterstützt derzeit nur String-Typen ohne LZF-Komprimierung
Syntax
DUMP mykey
Serialisiert den Wert, der unter Schlüssel gespeichert ist, in ein Redis-spezifisches Format und gibt ihn an den Benutzer zurück. Der zurückgegebene Wert kann mit dem Befehl RESTORE wieder in einen Redis-Schlüssel synthetisiert werden.
Resp-Antwort
String-Antwort: Das Serialisierungsformat ist undurchsichtig und nicht standardmäßig, hat aber einige semantische Eigenschaften
- Es enthält eine 64-Bit-Prüfsumme, die zur Erkennung von Fehlern verwendet wird. Der Befehl RESTORE prüft die Prüfsumme, bevor ein Schlüssel mit dem serialisierten Wert synthetisiert wird.
- Werte werden im gleichen Format wie RDB kodiert.
- Eine RDB-Version ist im serialisierten Wert kodiert, so dass unterschiedliche Redis-Versionen mit inkompatiblen RDB-Formaten die Verarbeitung des serialisierten Werts verweigern.
RESTORE
[!WICHTIG]
RESTORE unterstützt derzeit nur String-Typen ohne LZF-Komprimierung
Syntax
restore mykey 0 "\x00\x0evallllllllllll\x0b\x00|\xeb\xe2|\xd2.\xfa7"
Erstellt einen Schlüssel, der mit einem Wert verknüpft ist, der durch Deserialisierung des bereitgestellten serialisierten Werts (erhalten durch DUMP) gewonnen wird.
Wenn ttl 0 ist, wird der Schlüssel ohne Ablauf erstellt, andernfalls wird die angegebene Ablaufzeit (in Millisekunden) gesetzt.
Resp-Antwort
Einfache Zeichenketten-Antwort: OK.