对应的视频教程
一、RDB持久化
首先需要在Linux系统中安装一个Redis,如果尚未安装的同学,可以参考下面链接教程安装先:
修改配置文件
创建一个数据
因为设置了只要5秒内有一次修改就会触发一次备份数据,所以就得到了备份数据
RDB是有可能会发生数据丢失的,因为两次备份的时间间隔会比较长。因此我们需要AOF持久化,它可以大大地提高数据的安全性,来弥补RDB缺点
二、AOF持久化
1、修改配置文件redis.conf
1.1.先禁用RDB,因为要演示AOF
1.2.开启AOF功能(默认的是no)
1.3.AOF文件的名称,文件后缀是.aof,文件名可任意,这里我们不做修改没用默认的就行
1.4.![](https://i-blog.csdnimg.cn/blog_migrate/2815ac5ac8261fcf8dbc05acd3329af7.png)
到这配置文件的修改就完成了
2.删掉rdb文件
rm -rf *.rdb
3.重启redis
redis-server redis.conf
4.检查数据,发现证明之前的数据都清空了
5.写新数据
6.刷新一下,aof文件就生成了,也就是备份了数据
7.查看aof文件
如果继续添加命令写数据
8.停止redis和重启redis
停止重启后,依然有以前的数据
【 这就证明了,我们确实已经实现了数据的持久化和 故障的维护】
9.
但是存在的缺陷是,aof会记录对同一个key的多次写操作,但只有最有一次写操作才意义,然而这增大了文件的大小,比RDB的文件大很多。
通过执行 bgrewriteaof 命令,可以让AOF文件执行重写功能,用最少的命令达到相同的效果
9.1 执行bgrewriteaof 命令![](https://i-blog.csdnimg.cn/blog_migrate/18161e5089de1c94ea463ac6eadc8e08.png)
9.2. 通过cat命令查询aof文件
9.3. 通过vi查看aof文件
会发现命令被压缩了
虽然比之前的难看些了, 但还可以看懂一些,比如num name这些
10.如果我们不自己手动执行 bgrewriteaof 命令,Redis也会在触发阈值时自动去重写AOF文件。阈值也可以在redis.conf中配置:
# AOF文件比上次文件 增长超过多少百分比则触发重写
auto-aof-rewrite-percentage 100
# AOF文件体积最小多大以上才触发重写
auto-aof-rewrite-min-size 64mb
三、RDB和AOF两种持久化的对比
注意:
我们在实际使用中,往往会两者结合使用(数据回复优先级AOF优先于RDB)
RDB主要充一个数据备份的作用,我们可以将备份的RDB文件拷贝到别的机房,异地的容灾。当机房这个机房毁了,AOF也就毁了,但被拷贝到别的机房的RDB文件还在,那么我们的数据还是可以恢复的。所以RDB就是主要起到这么一个备份数据的作用