07 Redis之持久化(RDB+AOF)

4 Redis持久化

Redis 是一个内存数据库,然而内存中的数据是不持久的,若主机宕机或 Redis 关机重启,则内存中的数据全部丢失。

当然,这是不允许的。Redis 具有持久化功能,其会按照设置以快照或操作日志的形式将数据持久化到磁盘。

4.1 持久化基本原理

在这里插入图片描述
Redis 持久化也称为钝化,是指将内存中数据库的状态描述信息保存到磁盘中。
只不过是不同的持久化技术,对数据的状态描述信息是不同的,生成的持久化文件也是不同的。但它们的作用都是相同的:避免数据意外丢失。

通过手动方式,或自动定时方式,或自动条件触发方式,将内存中数据库的状态描述信息写入到指定的持久化文件中。当系统重新启动时,自动加载持久化文件,并根据文件中数据库状态描述信息将数据恢复到内存中,这个数据恢复过程也称为激活。

这个钝化与激活的过程就是 Redis 持久化的基本原理。

不过从以上分析可知,对于 Redis 单机状态下,无论是手动方式,还是定时方式或条件触发方式,都存在数据丢失问题:在尚未手动/自动保存时发生了 Redis 宕机状况,那么从上次保存到宕机期间产生的数据就会丢失。不同的持久化方式,其数据的丢失率也是不同的。

4.2 Redis默认RDB持久化

Redis默认使用RDB方式进行持久化,
即若不进行任何配置, 那么每次开机系统会自动加载Redis安装目录下的dump.rdb文件, 复原数据库到上一个记录点

同时 , 尽管RDB为Redis的默认持久化方式,但 Redis 允许 RDB 与 AOF 两种持久化技术同时开启,此时系统会优先使用 AOF 方式做持久化,即加载AOF持久化文件进行数据库复原.

在这里插入图片描述

4.3 RDB 持久化

RDB(Redis DataBase),是指将内存中某一时刻的数据快照全量写入到指定的 rdb 文件的持久化技术。
RDB 持久化默认是开启的。当 Redis 启动时会自动读取 RDB 快照文件,将数据从硬盘载入到内存,以恢复 Redis 关机前的数据库状态。

4.3.1 RDB持久化的执行

RDB 持久化的执行有三种方式:手动 SAVE 命令、手动 BGSAVE 命令,与自动条件触发。

4.3.1.1 手动SAVE命令

通过在 redis-cli 客户端中执行 SAVE 命令可立即进行一次持久化保存。

SAVE 命令在执行期间会阻塞 redis-server 进程,直至持久化过程完毕。即在执行SAVE命令的过程中 , Redis不能处理任何读写请求,无法对外提供服务。

4.3.1.2 手动BGSAVE命令
4.3.1.3 自动条件触发
4.3.1.4 查看持久化时间

4.3.2 RDB优化配置

4.3.3 RDB文件结构

4.3.4 RDB持久化过程

4.4 AOF持久化

4.4.1 AOF基础配置

相关推荐

  1. Redis使用手册持久存储》

    2024-02-21 06:52:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 06:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 06:52:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 06:52:02       82 阅读
  4. Python语言-面向对象

    2024-02-21 06:52:02       91 阅读

热门阅读

  1. 使用单元测试框架Junit的正确姿势

    2024-02-21 06:52:02       44 阅读
  2. SQL-2

    SQL-2

    2024-02-21 06:52:02      51 阅读
  3. 电商数据API接口

    2024-02-21 06:52:02       57 阅读
  4. 士兰微六轴陀螺仪SC7I22在AR/VR头显设备中的应用

    2024-02-21 06:52:02       45 阅读
  5. jupyter/scipy-notebook:python3.8 docker 镜像

    2024-02-21 06:52:02       51 阅读
  6. 云计算计算资源池与存储池访问逻辑

    2024-02-21 06:52:02       52 阅读
  7. pytorch和tensorflow比较以及安装使用tensorflow

    2024-02-21 06:52:02       52 阅读
  8. axios封装终极版实现token无感刷新及全局loading

    2024-02-21 06:52:02       40 阅读
  9. 深度学习之pytorch 中 torch.nn介绍

    2024-02-21 06:52:02       41 阅读
  10. [云原生] 初识Kubernetes

    2024-02-21 06:52:02       43 阅读