Redis資料遷移 鍵遷移

2021-08-16 19:29:38 字數 1292 閱讀 9914

有時候我們想將乙個redis的資料遷移到另乙個redis中,redis提供了三種方式來滿足資料遷移的需求,分別是move、dump+restore、migrate

redis支援多資料庫,多資料庫之間彼此在資料上是隔離的。move key db就是把指定的鍵從源資料庫遷移到目標資料庫中。由於多資料庫在生產環境中不建議使用,所以此命令很少使用到。

命令: 源redis: dump key

目標redis:restore keyttl value 其中ttl代表過期時間,單位:毫秒。0代表不過期

實現原理:

dump+restore可以實現redis不同例項之間的資料遷移。

(1)      在源redis上,dump命令會將鍵值序列化,格式採用rdb格式。

(2)      在目標redis上,restore命令會將上面序列化的值進行復原,其中ttl代表過期時間,如果ttl為0,則表示沒有過期時間

注意事項:

(1)      整個遷移過程並非原子性的,而是通過客戶端分布完成的。

(2)      遷移過程是開啟了兩個例項的redis客戶端,將源redis序列化後的值放到目標redis例項客戶端進行操作,並不是在源redis和目標redis之間進行傳輸

migrate命令具有原子性,只需要在源redis例項上執行migrate命令即可。migrate的命令傳輸直接在源redis和目標redis例項之間進行。

命令:migrate host port key |』』 destination-db timeout [copy] [replace][keyskey[key…]]

port:目標redis的埠號

key|』』』』:在redis3.06版本之前,migrate只支援遷移乙個鍵,所以此處是要遷移的鍵。

redis3.06版本之後支援遷移多個鍵,如果遷移多個鍵則此處填寫空字串』』』』

destination-db:目標資料庫索引,例如要遷移到0號資料庫,這裡就寫0

timeout:遷移的超時時間(單位毫秒)

[copy]:新增此選項後遷移後並不刪除源鍵

[replace]:新增此選項後,不管目標redis是否存在該鍵,都會正常遷移進行資料覆蓋

[keys key[key…]]:遷移多個鍵,例如要遷移k1k2 k3,此處填寫keys key1 key2 key3,當所有的key在源例項上不存在時返回nokey

例如:migrate 10.3.34.101 6378  010000 copy keys mi aa

將mi aa兩個元素遷移到10.3.34.101 6378例項的0號資料庫上,源例項mi aa兩個鍵仍然保留。

Redis資料遷移教程

將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 目的redi...

Redis鍵資料遷移的三種方式

在使用redis的過程中,很多時候我們會遇到需要進行鍵遷移的問題,需要將指定redis中的指定資料遷移到其他redis當中,鍵遷移有三種方法,我們來進行一一介紹。move key db move命令由於在redis內部進行資料遷移,redis內部可以有多個資料庫,彼此在資料上相互隔離,move ke...

redis資料庫遷移

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