欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis鍵遷移(move、dump、restore、migrate)的三種實現(xiàn)

 更新時間:2025年04月09日 09:26:40   作者:董哥的黑板報  
鍵遷移就是把數(shù)據(jù)由一個Redis遷移到另一個Redis,本文主要介紹了Redis鍵遷移(move、dump、restore、migrate)的三種實現(xiàn),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、鍵遷移概述

  • 鍵遷移就是把數(shù)據(jù)由一個Redis遷移到另一個Redis(例如從生產(chǎn)環(huán)境遷移到測試環(huán)境),或者在數(shù)據(jù)庫之間進行遷移
  • 鍵遷移有三種方式:move、dump+restore、migrate
  • 下面是三種方式的比較,建議使用migrate:

二、move

move key db
  • 功能:將參數(shù)所指的key從當(dāng)前源數(shù)據(jù)庫遷移到指定的數(shù)據(jù)庫中
  • 這個命令是在單個Redis內(nèi)部進行是用戶具有遷移

這個命令在實際生產(chǎn)環(huán)境中不建議使用

演示案例

0號數(shù)據(jù)庫有一個hello字符串鍵,1號數(shù)據(jù)庫為空,現(xiàn)在我們將0號數(shù)據(jù)庫的hello字符串鍵遷移到1號數(shù)據(jù)庫中

三、dump+restore

dump key
restore key ttl value

功能:這兩個命令的組合可以實現(xiàn)在不同的Redis數(shù)據(jù)庫實例之間進行數(shù)據(jù)遷移

整個遷移過程分為兩步:

  • 源Redis端執(zhí)行dump命令,將key鍵值序列化,格式采用的是RDB格式
  • 目標Redis端執(zhí)行restore命令,將上面序列化的值進行復(fù)原,其中ttl參數(shù)代表過期時間(如果為0代表沒有過期時間)

有兩點需要注意:

  • 第一,整個遷移過程并非原子性的,而是通過客戶端分步完成的
  • 第二,遷移過程是使用兩個客戶端連接傳輸,不是在源Redis和目標Redis之間進行傳輸

演示案例

在源Redis上執(zhí)行dum:

在目標Redis上執(zhí)行restore:

上面2步對應(yīng)的偽代碼如下:

四、migrate

  • migrate命令也是用于在Redis實例間進行數(shù)據(jù)遷移的
  • 實際上migrate命令就是將dump、restore、del三個命令進行組合,從而簡化了操作流程
  • migrate命令具有原子性,而且從Redis3.0.6版本以后已經(jīng)支持遷移多個鍵的功能,有效地提高了遷移效率,migrate在水平擴容(后面文章有介紹)中起到重要作用

遷移過程如下

整個過程如下圖所示:

實現(xiàn)過程和dump+restore基本類似,但是有3點不太相同:

  • 第一,整個過程是原子執(zhí)行的,不需要在多個Redis實例上開啟 客戶端的,只需要在源Redis上執(zhí)行migrate命令即可
  • 第二,migrate命令的數(shù)據(jù)傳輸直接在源Redis和目標Redis上完成的
  • 第三,目標Redis完成restore后會發(fā)送OK給源Redis,源Redis接收后會根據(jù)migrate對應(yīng)的選項來決定是否在源Redis上刪除對應(yīng)的鍵

命令格式

migrate  host  port  key|""  destination-db  timeout [copy] [replace] [keys key [key 

參數(shù)介紹如下:

  • host:目標Redis的IP地址
  • port:目標Redis的端口
  • key|"":在Redis3.0.6版本之前,migrate只支持遷移一個鍵,所以此處是要遷移的鍵,但Redis3.0.6版本之后支持遷移多個鍵,如果當(dāng)前需要遷移多個鍵,此處為空字符串""
  • destination-db:目標Redis的數(shù)據(jù)庫索引,例如要遷移到0號數(shù)據(jù)庫,這里就寫0。
  • timeout:遷移的超時時間(單位為毫秒)
  • [copy]:如果添加此選項,遷移后并不刪除源鍵
  • [replace]:如果添加此選項,migrate不管目標Redis是否存在該鍵都會正常遷移進行數(shù)據(jù)覆蓋
  • [keys key[key...]]:遷移多個鍵,例如要遷移key1、key2、key3,此處填 寫“keys key1 key2 key3”

演示案例(單個鍵遷移)

例如我們開啟兩個redis服務(wù)端實例,一個為127.0.0.1:6379,一個為127.0.0.1:6380

情況1:源(127.0.0.1:6379)Redis有鍵hello,目標(127.0.0.1:6380)Redis沒有,遷移成功

migrate 127.0.0.1 6380 hello 0 1000

情況2:源Redis和目標Redis都有鍵hello:

  • 如果migrate命令沒有加replace選項會收到錯誤提示(下面演示這種)
  • 如果加了replace會返回OK表明遷移成功(讀者自己演示)
migrate 127.0.0.1 6380 hello 0 1000

情況3:源Redis沒有鍵hello,此種情況會收到nokey的提示

migrate 127.0.0.1 6380 hello 0 1000

演示案例(多個鍵遷移)

源Redis批量添加多個鍵

mset key1 value1 key2 value2 key3 value3

源Redis執(zhí)行如下命令完成多個鍵的遷移

migrate 127.0.0.1 6380 "" 0 5000 keys key1 key2 key3

到此這篇關(guān)于Redis鍵遷移(move、dump、restore、migrate)的三種實現(xiàn)的文章就介紹到這了,更多相關(guān)Redis鍵遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決redis sentinel 頻繁主備切換的問題

    解決redis sentinel 頻繁主備切換的問題

    這篇文章主要介紹了解決redis sentinel 頻繁主備切換的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 使用Redis實現(xiàn)UA池的方案

    使用Redis實現(xiàn)UA池的方案

    這篇文章主要介紹了使用Redis實現(xiàn)UA池的方案,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 利用Redis實現(xiàn)防止接口重復(fù)提交功能

    利用Redis實現(xiàn)防止接口重復(fù)提交功能

    大家好,本篇文章主要講的是利用Redis實現(xiàn)防止接口重復(fù)提交功能,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 關(guān)于Redis最常見的十道面試題總結(jié)大全

    關(guān)于Redis最常見的十道面試題總結(jié)大全

    Redis作為一個高性能的內(nèi)存數(shù)據(jù)存儲系統(tǒng),具有快速讀寫、持久性、數(shù)據(jù)結(jié)構(gòu)多樣性等特點,廣泛應(yīng)用于各種應(yīng)用場景,這篇文章主要給大家介紹了關(guān)于Redis最常見的十道面試題總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • Redis中如何實現(xiàn)商品秒殺

    Redis中如何實現(xiàn)商品秒殺

    這篇文章主要介紹了Redis中如何實現(xiàn)商品秒殺問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 如何查看redis服務(wù)的版本

    如何查看redis服務(wù)的版本

    這篇文章主要介紹了如何查看redis服務(wù)的版本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

    玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

    這篇文章主要給大家介紹了關(guān)于Redis搭建集群之Sentinel的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Redis動態(tài)熱點數(shù)據(jù)緩存策略設(shè)計

    Redis動態(tài)熱點數(shù)據(jù)緩存策略設(shè)計

    本文主要介紹了Redis動態(tài)熱點數(shù)據(jù)緩存策略設(shè)計,包括熱點數(shù)據(jù)識別、動態(tài)緩存、多級緩存、預(yù)加載機制、更新策略以及監(jiān)控告警等,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • Redis中List實現(xiàn)雙鏈表

    Redis中List實現(xiàn)雙鏈表

    本文主要介紹了Redis中List實現(xiàn)雙鏈表,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解redis是如何實現(xiàn)隊列消息的ack

    詳解redis是如何實現(xiàn)隊列消息的ack

    這篇文章主要介紹了關(guān)于redis是如何實現(xiàn)隊列消息的ack的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04

最新評論