1. 程式人生 > >redis數據遷移

redis數據遷移

rubygems 主從同步 ash 清空 備份 工具 mov class pipe

一:AOF方式

需求: 一個沒有數據的redis

清空redis數據方法

bash> echo "keys *" | redis-cli --raw -p 6378 |sed -r ‘s/(.*)/redis-cli --raw -p 6378 del \1 /g‘ |bash

1.備份

bash> redis-cli --raw -p 6378

redis> config get dir #查看aof文件保存路徑

redis> config set appendonly yes #允許調用fsyncAOF日誌同步到硬盤

redis> SLAVEOF 192.168.10.52 6378 #

需要備份的服務器的ip端口

bash > cat $dir/appendonly.aof #查看備份的aof日誌

redis> SLAVEOF NO ONE #取消主從同步

redis> config set appendonly no #取消調用fsync


2.還原

bash> redis-cli --raw -p 6378

redis> config set appendonly yes #允許調用fsyncAOF日誌同步到硬盤

redis> redis-cli --raw -p 6378 --pipe < appendonly.aof #

將文件進行導入

redis> config set appendonly no #取消調用fsync

redis> keys * #查看備份的數據


二:RDB方式

1.在要備份的redis上執行sync命令後停掉服務

2.停掉備份服務器的redis

2dump.rdb替換備份服務器的dump.rdb

3.重啟服務。



三:redis_dump方式(第三方工具)

bash> yum install ruby rubygems ruby-devel

bash> gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

bash> gem install redis-dump -V


備份

bash> redis-dump -u 192.168.10.100:6378 > test.json

還原

bash> < test.json redis-load -u 127.0.0.1:6378


redis數據遷移