Redis資料遷移教程

2021-12-30 11:29:17 字數 1774 閱讀 3510

將src redis上的三個key(x,y,z)的全部內容,遷移到dst redis(10.20.30.40)

(1)登入src redis的cli

(2)執行命令

migrate 10.20.30.40 6379 "" 0 5000 copy keys x y z命令說明:

10.20.30.40:目的redis伺服器位址 0 5000:timeout時間範圍(毫秒) copy:可以去掉,若去掉,則遷移key後,就會在本地將key刪除 x y z:要遷移的三個key

注意timeout並不是說資料遷移必須在這個時間範圍內(5s)完成,而是說遷移過程如果有中斷,中斷不能超過5s。

migrate例項

(1)啟動dst redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server --protect-mode no(2)啟動src redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server(3)在src redis中,新增幾個key

127.0.0.1:6379> set x1 123

ok127.0.0.1:6379> sadd x2 1 2 3

(integer) 3

127.0.0.1:6379> hmset x3 key1 value1 key2 value2(4)在src redis上執行如下命令,遷移到dst redis

127.0.0.1:6379> migrate 10.20.30.40 6379 "" 0 5000 copy keys x1 x2 x3

ok通過redis的migrate命令說明可以看到,migrate的實現,是在redis資料來源上,做dump+del,然後到目標redis,做restore。

我們也可以參考這種思路,將src redis上的key先dump到本地磁碟,再將其移動到dst redis,然後用restore重建。

backup/restore例項

(1)啟動dst redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server --protect-mode no(2)啟動src redis

root@ubuntu:/home//tmp/redis-3.2.9# src/redis-server(3)在src redis,對某個key做backup。這裡將key為user:1000的hash結構backup為檔案user_1000

root@ubuntu:/home/tmp# redis-3.2.9/src/redis-cli --raw dump user:1000 | head -c-1 > user_1000注意,這裡head -c-1,是將dump指令的輸出的資料,去掉最後乙個位元組,然後儲存為檔案user_1000

(4)將檔案user_1000拷貝到dst redis,再匯入,並將key設定為user:1000:new

root@ubuntu:/home/tmp# cat user_1000 | redis-3.2.9/src/redis-cli -x restore user:1000:new 0最後乙個引數0,是到期時間。如果設定為0,則表示不為該操作(restore)設定到期時間。

直接使用migrate做資料遷移,較為簡單,但低版本的redis,migrate不支援copy,就是說migrate後會在src redis上刪除資料。用dump/restore做資料遷移,雖然耗時一些,但能做好backup,src redis上資料不會被刪除,比較安全。

Redis資料遷移 鍵遷移

有時候我們想將乙個redis的資料遷移到另乙個redis中,redis提供了三種方式來滿足資料遷移的需求,分別是move dump restore migrate redis支援多資料庫,多資料庫之間彼此在資料上是隔離的。move key db就是把指定的鍵從源資料庫遷移到目標資料庫中。由於多資料庫...

資料幫浦遷移Oracle資料教程

匯出 1.先建立原庫的db link。create public database link db local connect to userxx identified by passwd using description address list address protocol tcp hos...

redis資料庫遷移

某大佬說,我們要把一部機器的redis遷移到另外一部機器上面。現已存在兩部機器的redis環境及狀態是啟動,還有本地用rdm連線著兩部機器的connection。開啟rdm,右擊redis資料庫,選擇console開啟redis命令控制台,輸入命令 config get dir輸出 1 dir 2 ...