简单粗暴的Redis数据备份和恢复方法
示例
目标:把服务器CentOS上的redis数据复制到Mac机上
步骤:
在CentOS上找dump文件位置
vi/etc/redis.conf dbfilenamedump.rdb dir/var/lib/redis
说明文件在
/var/lib/redis/dump.rdb
在mac上查找dump文件位置
vi/usr/local/etc/redis.conf dbfilenamedump.rdb dir/usr/local/var/db/redis
拷贝服务器上的dump.rdb到mac机器
scproot@dv:/var/lib/redis/dump.rdb./
在mac上重启Redis
launchctlunload~/Library/LaunchAgents/homebrew.mxcl.redis.plist launchctlload~/Library/LaunchAgents/homebrew.mxcl.redis.plist
PS:备份脚本
看如下脚本,
#!/bin/bash PATH=/usr/local/bin:$PATH redis-cliSAVE date=$(date+"%Y%m%d") cp/var/lib/redis/6379/dump.rdb/data01/cache_backup/$date.rdb echo"done!"
有如上脚本,便可以cron等方式备份redis数据文件了。细节如下:
首先必须进行SAVE,因为redis的rdb文件并非总是内存数据的完整镜像,备份之前必须进行SAVE,即向其发送SAVE命令,其次拷贝走其rdb文件即可。
rdb的具体路径不一定是如上路径,可以在redis配置文件中查找,/etc/redis/6379.conf
#ThefilenamewheretodumptheDB dbfilenamedump.rdb #Theworkingdirectory. # #TheDBwillbewritteninsidethisdirectory,withthefilenamespecified #aboveusingthe'dbfilename'configurationdirective. # #AlsotheAppendOnlyFilewillbecreatedinsidethisdirectory. # #Notethatyoumustspecifyadirectoryhere,notafilename. dir/var/lib/redis/6379