redis入门(三)数据备份和恢复

日志

redis持久化

1RDB


RDB

持久化 RDB和AOF

RDB通过保存数据库当中的键值对来记录数据库的不同
AOF通过记录服务器所执行的命令来记录数据库的状态的

实战

1,基于RDB方式的备份和恢复

在客户端(redis-cli)输入sava命令之后,就会在redis的安装目录下建立dunp.rdb文件,rdb文件保存数据库当中的键值对来保存redis数据库状态的不同。


RDB

dump.rdb文件内容

sava命令直接是保存,可能会影响服务器的性能,一般推荐使用bgsave

恢复数据

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。

获取 redis 目录可以使用CONFIG命令,如下所示:

config get 命令:获取 redis 目录可以使用CONFIG命令

格式:CONFIG GET dir

redis一般默认的就是这种方式
当我们关闭服务器的时候,再次打开我们的数据就不会丢失,我们知道redis是一种内存数据库再次打开是因为使用RDB方式保存到了磁盘里面,即dump.rdb文件里面。当我们需要恢复的时候,我们只需要将rdb文件复制到安装目录下面,启动服务,他就加载在到了数据库里面
下面是redis.conf里面默认的配置

rdb保存策略

实验:
1,我们在A服务器上生成dump.rdb文件,然后放到B服务器上的dir里面。重启项目。我们就会发现B服务器中初始化之后就是Aredis服务器里面的内容。
实验结果

注意:
1,redis5.0.5rdb文件开始又相关版本信息,最好使用相同的redis版本
2,上传命令rz ,下载命令 sz

2,1,基于AOF方式的备份和恢复

AOF通过记录服务器所执行的命令来记录数据库的状态的
恢复过程就相当于将aof里面的文件执行一遍
过程:
1,修改redis.conf

appendonly yes #开启redis aof备份

2,重启文件

查看当前dir目录下面,会发现生成一个appendonly.aof的文件
这个文件记录了每一步的操作,效率稍慢但是更安全
实验过程和上面的类似,都是基于相应数据文件的修复,重新启动
1,将aof文件备份,删除aof文件和rdb文件,然后将重启服务,此时我们看见数据库里面什么都没有
2,将aof文件放到指定的位置,一般为src下面,然后重启,就可以看到我们之前保存的数据


aof

aof文件恢复耗时0.02秒


恢复结果

注意:
1,不同机器的相应生成的配置文件可能不应再src目录下,例如使用apt-get方式安装就在/var/lib/redis目录下面
2,在Redis指定端口服务加载给定的AOF文件时,如果AOF文件过大,系统可能会报如下错误:
Can't save in background: fork: Cannot allocate memory
解决办法:修改系统/etc/sysctl.conf文件,并添加以下内容:vm.overcommit_memory=1
在linux中为:sudo sysctl -p /etc/sysctl.conf

高可用方案

你可能感兴趣的:(redis入门(三)数据备份和恢复)