Englisch [ma??gre?t] Amerikanisch [?ma?gre?t]

vi.Move; migrate, move to; migrieren mit den Jahreszeiten

vt.Migrate; transplantieren

Dritte Person Singular: migriert Pr?sens: migriert Partizip Perfekt: migriert

redis MIGRATE-Befehl Syntax

Funktion: Atomischer Transfer des Schlüssels von der aktuellen Instanz in die angegebene Datenbank der Zielinstanz. Sobald die übertragung erfolgreich ist, wird der Schlüssel garantiert auf der Zielinstanz angezeigt und der Schlüssel auf der aktuellen Instanz wird gel?scht.

Syntax: MIGRATE-Host-Port-Schlüssel-Zieldatenbank-Timeout [KOPIEREN] [REPLACE]

Beschreibung: Der MIGRATE-Befehl muss den E/A-Vorgang innerhalb des angegebenen Zeitlimits abschlie?en. Wenn beim übertragen von Daten ein E/A-Fehler auftritt oder das Zeitlimit erreicht ist, stoppt der Befehl die Ausführung und gibt einen speziellen Fehler zurück: IOERR .

Verfügbare Versionen: >= 2.6.0

Zeitliche Komplexit?t: Dieser Befehl führt tats?chlich den DUMP-Befehl und den DEL-Befehl auf der Quellinstanz aus und führt den RESTORE-Befehl auf der Zielinstanz aus Dokumentation für die oben genannten Befehle. Die Komplexit?t der übertragung von Schlüsseldaten zwischen zwei Instanzen betr?gt O(N).

Rückgabe: OK zurückgeben, wenn die Migration erfolgreich ist, andernfalls wird der entsprechende Fehler zurückgegeben.

redis MIGRATE-Befehl Beispiel

先啟動(dòng)兩個(gè) Redis 實(shí)例,一個(gè)使用默認(rèn)的 6379 端口,一個(gè)使用 7777 端口。
$ ./redis-server &[1] 3557
...
$ ./redis-server --port 7777 &[2] 3560...

然后用客戶端連上 6379 端口的實(shí)例,設(shè)置一個(gè)鍵,然后將它遷移到 7777 端口的實(shí)例上:
$ ./redis-cliredis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379> SET greeting "Hello from 6379 instance"
OK
redis 127.0.0.1:6379> MIGRATE 127.0.0.1 7777 greeting 0 1000
OK
redis 127.0.0.1:6379> EXISTS greeting                           
# 遷移成功后 key 被刪除(integer) 0

使用另一個(gè)客戶端,查看 7777 端口上的實(shí)例:
$ ./redis-cli -p 7777
redis 127.0.0.1:7777> GET greeting
"Hello from 6379 instance"