【redis】數據遷移

一、Redis同一實例的數據庫之間遷移數據

命令: 源REDIS:move key db

此命令用於把指定的鍵從源數據庫遷移到目標數據庫中

將key爲某的數據遷移到數據庫1

二、Redis不同實例之間的數據遷移

命令:    源REDIS:dump key

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

實現原理:
dump+restore可以實現redis不同實例之間的數據遷移。
(1)      在源Redis上,dump命令會將鍵值序列化,格式採用RDB格式。
(2)      在目標Redis上,restore命令會將上面序列化的值進行復原,其中ttl代表過期時間,如果ttl爲0,則表示沒有過期時間

注意事項:

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

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

三、Redis批量數據遷移(僅限3.06之後版本)

命令:migrate host port key |’’ destination-db timeout [copy] [replace][keyskey[key…]]
選項:host:目標redis的IP地址
     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 ''  0 10000 copy keys mi aa

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章