一: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 #允許調用fsync將AOF日志同步到硬盤
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 #允許調用fsync將AOF日志同步到硬盤
redis> redis-cli --raw -p 6378 --pipe < appendonly.aof #將文件進行導入
redis> config set appendonly no #取消調用fsync
redis> keys * #查看備份的數據
二:RDB方式
1.在要備份的redis上執行sync命令后停掉服務
2.停掉備份服務器的redis
2將dump.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