Einen Schlüssel mit MOVE zwischen Datenbanken verschieben
In diesem Schritt lernen Sie, wie Sie einen Schlüssel mit dem Befehl MOVE
von einer Redis-Datenbank in eine andere verschieben. Redis unterstützt mehrere logische Datenbanken innerhalb einer einzigen Instanz. Standardmäßig gibt es 16 Datenbanken, nummeriert von 0 bis 15. Mit dem Befehl MOVE
können Sie einen Schlüssel von der aktuell ausgewählten Datenbank in eine andere übertragen.
Stellen Sie zunächst sicher, dass Sie mit dem Redis-Server über die Redis-Befehlszeilenschnittstelle (redis-cli
) verbunden sind. Öffnen Sie ein Terminal in Ihrem Verzeichnis ~/project
und geben Sie den folgenden Befehl ein:
redis-cli
Sie sollten die Redis-Eingabeaufforderung sehen: 127.0.0.1:6379>
. Standardmäßig sind Sie mit Datenbank 0 verbunden.
Wir haben bereits einen Schlüssel namens mykey
mit dem Wert myvalue
in Datenbank 0 aus dem vorherigen Schritt. Lassen Sie uns dies überprüfen:
GET mykey
Sie sollten die Ausgabe sehen: "myvalue"
.
Verschieben wir nun den Schlüssel mykey
von Datenbank 0 in Datenbank 1 mit dem Befehl MOVE
:
MOVE mykey 1
Sie sollten die Ausgabe sehen: (integer) 1
, was bedeutet, dass der Schlüssel erfolgreich verschoben wurde.
Um zu überprüfen, ob der Schlüssel verschoben wurde, versuchen Sie, den Wert des Schlüssels mykey
in Datenbank 0 abzurufen:
GET mykey
Sie sollten die Ausgabe sehen: (nil)
, was bedeutet, dass der Schlüssel nicht mehr in Datenbank 0 existiert.
Wechseln Sie nun mit dem Befehl SELECT
zu Datenbank 1:
SELECT 1
Sie sollten die Ausgabe sehen: OK
.
Versuchen Sie nun, den Wert des Schlüssels mykey
in Datenbank 1 abzurufen:
GET mykey
Sie sollten die Ausgabe sehen: "myvalue"
, was bestätigt, dass der Schlüssel erfolgreich in Datenbank 1 verschoben wurde.
Verschieben wir abschließend den Schlüssel mykey
für die nächsten Schritte zurück in Datenbank 0. Wechseln Sie zunächst zurück zu Datenbank 0:
SELECT 0
Sie sollten die Ausgabe sehen: OK
.
Verschieben Sie nun den Schlüssel mykey
von Datenbank 1 in Datenbank 0:
MOVE mykey 0
Sie sollten die Ausgabe sehen: (error) ERR source and destination objects are the same
.
Dieser Fehler tritt auf, weil Sie SELECT 0
und dann MOVE mykey 0
in derselben Sitzung ausführen. Der Befehl MOVE
darf einen Schlüssel nicht in dieselbe Datenbank verschieben, in der er sich gerade befindet.
Um einen Schlüssel in eine andere Datenbank zu verschieben, müssen Sie zuerst die Zieldatenbank auswählen und dann den Befehl MOVE
verwenden.
Wählen Sie beispielsweise zuerst Datenbank 1 aus:
SELECT 1
Sie sollten die Ausgabe sehen: OK
.
Verschieben Sie nun den Schlüssel mykey
von Datenbank 1 in Datenbank 0:
MOVE mykey 0
Sie sollten die Ausgabe sehen: (integer) 1
, was bedeutet, dass der Schlüssel erfolgreich verschoben wurde.
Wechseln Sie nun zurück zu Datenbank 0:
SELECT 0
Überprüfen Sie, ob sich der Schlüssel wieder in Datenbank 0 befindet:
GET mykey
Sie sollten die Ausgabe sehen: "myvalue"
.
Denken Sie daran, redis-cli
mit exit
zu beenden oder Strg+D
zu drücken. Dies stellt sicher, dass Ihre Befehle ordnungsgemäß protokolliert werden.
exit
Sie haben nun erfolgreich einen Schlüssel mit dem Befehl MOVE
zwischen Redis-Datenbanken verschoben.