何为Redis?
Redis是内存中的键值缓存和存储(即数据库),也可以永久保存到磁盘。在本文中,你将了解,如何在Centos 7上备份还原您的redis数据库。
备份还原说明
默认情况下,Redis数据将保存到磁盘中的.rdb文件中,该文件是Redis数据集的时间点快照。快照是按照指定的时间间隔进行的,所以对于备份来说是完美的。
1.数据备份篇
在Centos 7和其他Linux发行版中,Redis数据库目录默认是/var/lib/redis。但是,如果您更改了redis存储位置,则可以通过键入以下命令查找:
[root@renwolecom ~]# find / -name *rdb
使用redis-cli管理工具进入数据库:
[root@renwolecom ~]# redis-cli
由于大部分数据都运行在内存中,redis只会每隔一段时间保存一次,为获取最新副本,请执行以下命令:
10.10.204.64:6379> save OK (1.02s)
另外,如果Redis设置了用户认证,就需要先验证,再保存,例如:
10.10.204.64:6379> auth RenwoleQxl5qpKHrh9khuTW 10.10.204.64:6379> save
之后进行备份即可,例如:
[root@renwolecom ~]# cp /var/lib/redis/dump.rdb /apps/redis-backup-20180129
2.数据还原篇
恢复备份需要您使用恢复文件替换现有的Redis数据库文件。为保证原始数据文件不被破坏,我们建议尽可能恢复到新的Redis服务器。
停止Redis数据库,一旦停止,Redis数据库处于脱机状态。
[root@renwolecom ~]# systemctl stop redis
如果恢复到原始Redis服务器,请重命名当前数据文件,之后再进行恢复:
[root@renwolecom ~]# mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.old [root@renwolecom ~]# cp -p /apps/redis-backup-20180129/dump.rdb /var/lib/redis/dump.rdb
设置dump.rdb文件权限,拷贝过来的数据文件,可能不具备Redis用户及读取权限,需要手动赋予:
[root@renwolecom ~]# chown redis:redis /var/lib/redis/dump.rdb [root@renwolecom ~]# chmod 660 /var/lib/redis/dump.rdb
启动redis
[root@renwolecom ~]# systemctl start redis
大功告成!现在你可以登录redis核实数据了。
注意说明:
根据需求,关闭AOF,AOF跟踪每个写操作到Redis数据库。由于我们试图从时间点备份中恢复,所以我们不希望Redis重新创建存储在其AOF文件中的操作。
是否开启AOF可以通过查看文件获悉:
[root@renwolecom ~]# ls /var/lib/redis/
如果看到.aof后缀的文件,说明你启用了AOF。
重命名.aof文件,
[root@renwolecom ~]# mv /var/lib/redis/*.aof /var/lib/redis/appendonly.aof.old
如果有多个.aof文件,请单独命名。
编辑你的Redis配置文件暂时关闭AOF:
[root@renwolecom ~]# vim /etc/redis/redis.conf appendonly no
如果备份期间有任何疑问,欢迎留言。