(分布式缓存)Redis持久化

对应的视频教程

高级篇Day3-01-Redis持久化_哔哩哔哩_bilibili

一、RDB持久化

img

首先需要在Linux系统中安装一个Redis,如果尚未安装的同学,可以参考下面链接教程安装先:

(73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客

img

imgimg

修改配置文件

img

img

img

创建一个数据

img

因为设置了只要5秒内有一次修改就会触发一次备份数据,所以就得到了备份数据

img

img

img

RDB是有可能会发生数据丢失的,因为两次备份的时间间隔会比较长。因此我们需要AOF持久化,它可以大大地提高数据的安全性,来弥补RDB缺点

二、AOF持久化

img

1、修改配置文件redis.conf

img

1.1.先禁用RDB,因为要演示AOF

img

1.2.开启AOF功能(默认的是no)

img

1.3.AOF文件的名称,文件后缀是.aof,文件名可任意,这里我们不做修改没用默认的就行

img

1.4.img

到这配置文件的修改就完成了

2.删掉rdb文件

1
rm -rf *.rdb

点击并拖拽以移动

img

3.重启redis

1
redis-server redis.conf

点击并拖拽以移动

4.检查数据,发现证明之前的数据都清空了

img

5.写新数据

img

6.刷新一下,aof文件就生成了,也就是备份了数据

img

7.查看aof文件

img

如果继续添加命令写数据

img

img

8.停止redis和重启redis

img

img

停止重启后,依然有以前的数据

img

【 这就证明了,我们确实已经实现了数据的持久化和 故障的维护】

9.

但是存在的缺陷是,aof会记录对同一个key的多次写操作,但只有最有一次写操作才意义,然而这增大了文件的大小,比RDB的文件大很多

通过执行 bgrewriteaof 命令,可以让AOF文件执行重写功能,用最少的命令达到相同的效果 img9.1 执行bgrewriteaof 命令img

9.2. 通过cat命令查询aof文件

img

9.3. 通过vi查看aof文件

会发现命令被压缩了

虽然比之前的难看些了, 但还可以看懂一些,比如num name这些

img

10.如果我们不自己手动执行 bgrewriteaof **命令,**Redis也会在触发阈值时自动去重写AOF文件。阈值也可以在redis.conf中配置:

# AOF文件比上次文件 增长超过多少百分比则触发重写 auto-aof-rewrite-percentage 100

# AOF文件体积最小多大以上才触发重写 auto-aof-rewrite-min-size 64mb

三、RDB和AOF两种持久化的对比

img

注意:

我们在实际使用中,往往会两者结合使用(数据回复优先级AOF优先于RDB)

RDB主要充一个数据备份的作用,我们可以将备份的RDB文件拷贝到别的机房,异地的容灾。当机房这个机房毁了,AOF也就毁了,但被拷贝到别的机房的RDB文件还在,那么我们的数据还是可以恢复的。所以RDB就是主要起到这么一个备份数据的作用