Redis數據遷移方案


場景

Redis實例A ---> Redis實例B,整庫全量遷移

方案一:

mac環境
brew install npm
npm install redis-dump -g

針對RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json
針對RedisB: cat mydb.json | redis-dump --convert | redis-cli
方案二:
參考: http://www.zlovezl.cn/articles/migrate-redis-server-seamlessly/, 利用redis的主從復制,從RedisA同步到RedisB,完成后,恢復RedisB的master身份。

方案三:(針對阿里雲Redis數據遷移)
RedisA實例的dump.rdb文件拷貝到一台阿里雲ecs服務器上,該服務器應該能夠連接到RedisB實例,在該服務器上自建一個redis實例RedisC, 並RedisC的redis.conf配置文件中的下列配置作出修改:
# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /data/mydirectory/  #此處路徑為你拷貝過來的dump.rdb文件所在路徑

啟動RedisC實例,即可導入RedisA實例的所有內容

方案四:
開啟用戶現有 Redis 實例的 AOF 功能(如果實例已經啟用 AOF 功能則忽略此步驟)。

# redis-cli -h old_instance_ip -p old_instance_port config set appendonly yes

通過 AOF 文件將數據導入到新的 ApsaraDB for Redis 實例 (假定生成的 AOF 文件名為 append.aof)。
# redis-cli -h aliyun_redis_instance_ip -p 6379 -a password --pipe < appendonly.aof
注意:如果原有舊的 Redis 實例不需要一直開啟 AOF,可在導入完成后通過以下命令關閉。
# redis-cli -h old_instance_ip -p old_instance_port config set appendonly no

-------------------------------------- 兩個阿里雲redis實例間的數據遷移,綜合方案三,四 --------------------------------------------------------------
1)舊redis實例的*.rdb文件拷貝到一台阿里雲ecs服務器(ServerA)上,執行方案三
保存為dump.rdb到目錄 /var/lib/redis/dump.rdb
重啟redis: service redis restart
2)執行方案四(在ServerA上運行如下命令)
redis-cli config set appendonly yes(針對本地自建redis)
redis-cli -h 新redis實例host  -a 密碼 --pipe < /var/lib/appendonly.aof

/var/lib/appendonly.aof 表示 appendonly.aof文件在ServerA上的絕對路徑
redis-cli config set appendonly no (針對本地自建redis)
-------------------------------------- redis數據遷移步驟 End--------------------------------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM