欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Centos7如何备份和还原Redis数据的方法

程序员文章站 2022-10-17 22:38:19
何为redis? redis是内存中的键值缓存和存储(即数据库),也可以永久保存到磁盘。在本文中,你将了解,如何在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

如果备份期间有任何疑问,欢迎留言。在此也非常感谢大家对网站的支持!