大厂面试之【Redis持久化机制】 - RDB和AOF概述及应用配置

Redis持久化


先上结论:Redis持久化操作分为rdb以及aof,但是前者已经够用


1. RDB(Redis DataBase)


1.1 概述


  1. rdb保存的是dump.rdb文件
  2. 在指定的时间间隔内将内存中的数据集快照写入磁盘,类似于Snapshot快照
  3. 恢复时是将快照文件直接读到内存里
  4. redis.conf的快照配置中设置了save保存机制之后,可以设置持久化,一般来说conf配置文件不需要进行修改

其原理在主进程的运行过程中,创建一个子进程。子进程会先将所有的数据写入到一个临时文件中,等持久化结束,再用这个临时文件替换上次持久化的文件。在整个过程中,主进程是不进行任何的读写操作,确保了性能。

1.2 配置应用


编辑配置文件redis.conf,找到SNAPSHOTTING关键字,写入我们自己的值

在这里插入图片描述

其上的修改字段表示多少秒内,有多少个key进行了修改,会触发保存机制

# 900秒内,有1个key进行了修改,将触发保存机制
save 900 1

设置持久化文件的名称以及设置持久化文件的路径位置。这里千万要注意,得赋予这个对应的文件夹写入权限,例如chomod -R 777 /usr/local/bin/myRedisDump

在这里插入图片描述

此后,我们每次触发一次保存机制,相应的文件就会存储在该文件夹下

在这里插入图片描述

触发机制

  1. save的规则满足的情况下,会自动触发rdb规则
  2. 执行flushall命令,也会触发rdb规则
  3. 退出redis,也会产生rdb文件

如何恢复rdb文件

首先查看我们存在的目录位置

config get dir

在这里插入图片描述

rdb文件放在所示目录下即可,redis启动会自动监测该数据文件并且恢复

优缺点

优点:

  1. 适合大规模的数据恢复
  2. 对数据的完整性要不高

缺点:

  1. 需要一定的时间间隔进程操作,如果意外宕机了,这个最后一次修改数据就没有的了
  2. 开启子进程的时候,会占用一定的内容空间

2. AOF(Append Only File)


2.1 概述


  1. aof保存的是appendonly.aof文件
  2. 将所有命令记录下来,恢复的时候直接全部重新执行,默认关闭该模式
  3. 以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件,但不可以改写文件,redis启动之初会读取该文件重新构建数据
  4. redis重启就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作

2.2 配置应用


编辑配置文件redis.conf,找到APPEND ONLY MODE关键字,将其改为yes即可

在这里插入图片描述

修复

如果生成的aof配置文件有错,redis无法正常启动,可以利用自带的修复软件

在这里插入图片描述

redis-check-aof --fix appendonly.aof

优缺点

优点:

  1. 每一次修改都同步,文件的完整性更好
  2. 从不同步,效率最高

缺点

  1. 相对文件数据来说,修复速度较慢
  2. 运行效率较慢,远远不如rdb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值