Zum Hauptinhalt springen

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 hat
  • XX -- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hat
  • GT -- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle ist
  • LT -- 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 hat
  • XX -- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hat
  • GT -- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle ist
  • LT -- 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 hat
  • XX -- Setzt den Ablauf nur, wenn der Schlüssel einen vorhandenen Ablauf hat
  • GT -- Setzt den Ablauf nur, wenn der neue Ablauf größer als der aktuelle ist
  • LT -- 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.


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.