redis資料庫遷移

Juven發表於2018-07-06

情景分析

某大佬說,我們要把一部機器的redis遷移到另外一部機器上面。現已存在兩部機器的redis環境及狀態是啟動,還有本地用rdm連線著兩部機器的connection。

開始

第一步:查詢redis儲存檔案存放在機器的位置

開啟rdm,右擊redis資料庫,選擇Console開啟redis命令控制檯,輸入命令:

CONFIG GET dir

輸出:

1)  "dir"
2)  "/"

說明redis儲存檔案dump.rdb(檔名是redis.conf檔案預設配置的)在伺服器的根目錄/下。
重複第一步的上述步驟分別找出兩部機器redisdump.rdb位置;

第二步:關閉目標伺服器redis

具體怎麼關閉這裡不闡述,但可以通過第三方工具關閉和通過命令關閉,具體可以根據喜好選擇;但一定要先關閉redis伺服器才進行下一步,否則遷移無效(不知道為何);

第三步:複製源伺服器dump.rdb檔案到目標伺服器指定位置

這一步可以通過ftp等工具實現,也可以通過命令列實現。當時筆者用的是命令列,直接在源伺服器上敲打命令(此命令會覆蓋目標伺服器上指定路徑的檔案):

scp path/to/dump.rdb serverUserName@serverIp:path/to/dump.rdb

回車,需要輸入密碼,輸入的時候不可見輸入的密碼,自己在大腦中臆想已輸入的字元,確保沒問題,直接回車。如果沒問題的話,表示已經將源伺服器的dump.rdb檔案傳輸過去了。

第四步:啟動目標伺服器的redis服務

具體怎麼啟動這裡不闡述,但可以通過第三方工具啟動和通過命令啟動,具體可以根據喜好選擇;

第五步:驗證目標伺服器的redis資料是否已經遷移完畢

這個時候,開啟rdm,右擊目標伺服器的redis資料庫,選擇Reload;這個時候就可以看到redis資料庫已經遷移完成了。

總結

原來才知道遷移redis資料庫沒想象中那麼難,關鍵是在實際操作過程中會踩到一些坑,其中也不明白為何要先關閉目標伺服器的redis服務才可以進行替換和遷移,或許跟redis是儲存在記憶體和資料持久化有關係吧。

相關文章