标签归档:redis-cli

Centos 7如何备份和还原Redis数据

何为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

如果备份期间有任何疑问,欢迎留言。