Redis的数据持久化

一.概念

可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。Redis 的数据存储在内存中,内存是瞬时的,如果系统宕机或重启,又或者Redis崩溃或重启,所有内存数据都会丢失。为解决这个问题,Redis提供两种机制对数据进行持久化存储,以便发生故障后能迅速恢复数据。

二.方式

  • RDB:redis database backup file,是 redis 默认的持久化方式
  • AOF:append of file

(1)RDB

RDB快照记录的是某一时刻的内存数据写入到硬盘上,全量快照

如何使用RDB

提供了两个命令来生成RDB文件,savebgsave,区别在于后者是后台运行的,可以避免主线程的阻塞

(2)AOF

AOF日志文件记录的是内容操作的命令
截屏2023-10-21 14.22.01.png

AOF记录日志命令是先执行写完命令后再记录该命令到日志里

如何使用AOF

在 Redis 中 AOF 持久化功能默认是不开启的,需要我们修改 redis.conf 配置文件中的以下参数:

appendonly   yes   //表示是否开启AOF持久化
appendfilename "appendonly.aof"   // AOF持久化文件名称

好处

a.不会添加额外的开销
b.不会阻塞写命令的运行

三种写回策略的对比

截屏2023-10-21 14.33.40.png

重写机制

当redis运行时长长,写操作多的话AOF日志文件就会大,所以redis有这个重写机制。

会重新弄一份AOF日志,对reids所用已存在的数据写一份数据,格式为set key value

写完后就可以覆盖原来的AOF日志,大大减少了AOF日志文件的大小,同时如果失败了,也不会对原来的AOF日志产生影响

习题

1.关于Redis的持久化,下列描述错误的是?

A RDB是以快照的形式,将内存中的数据整体拷贝到硬盘上

B AOF是以日志形式,将内存中的数据整体拷贝到硬盘上

C AOF操作的实时性好,但是产生的数据体积大,数据的恢复速度慢

D 执行RDB存储时会产生阻塞,因此RDB不适合实时备份,而适合定时备份

选B,因为它并不是实时地将数据整体拷贝到硬盘上,通常情况是一条条指令写入

ps: 以上部分图源自小林图解

相关推荐

  1. Redis数据持久方式

    2024-01-05 13:18:02       21 阅读
  2. Redis持久!!!

    2024-01-05 13:18:02       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 13:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 13:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 13:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 13:18:02       20 阅读

热门阅读

  1. Android 车联网——PowerHalService介绍(九)

    2024-01-05 13:18:02       35 阅读
  2. 嵌入式Linux C语言介绍

    2024-01-05 13:18:02       31 阅读
  3. centos7 安装EFK脚本

    2024-01-05 13:18:02       40 阅读
  4. 【算法分析与设计】双胞胎探宝

    2024-01-05 13:18:02       34 阅读
  5. vos3000外呼系统如何修改服务器的时区

    2024-01-05 13:18:02       32 阅读
  6. C++:类和对象(2)

    2024-01-05 13:18:02       29 阅读