首页 > 数据库 >【Redis持久化】RDB、AOF介绍和使用

【Redis持久化】RDB、AOF介绍和使用

时间:2024-07-01 17:41:53浏览次数:17  
标签:AOF 文件 Redis redis 指令 RDB

RDB、AOF介绍和使用
引言
ROB
介绍
配置
指令介绍
使用指令:
dump文件修复指令
快照禁用
AOF
工作流程:
文件重写:
三种写回策略:
混合使用
引言
持久化的目的,其实就是在Redis重启或者中途崩溃的时候能够依靠自身恢复数据,而不需要再次访问MySQL数据库,重新取得数据,增加MySQL的工作量。

在此有两种方法,RDB和AOF,两种方法都是将从MySQL得到的数据内容进行放置。

ROB:在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上。
AOF:将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍(类似于MYSQL数据库的SQL文件),以此实现数据恢复。
ROB
介绍
首先,介绍ROB定义中的快照(snapshot):把某一时刻的数据和状态以文件(RDB文件:dump.rdb)的形式写到磁盘上。

ROB特点:

Redis的数据都在内存中,保存备份时它执行的是全量快照,也就是说,把内存中的所有数据都记录到磁盘中。
Redis 会单独创建(fork)一个子进程来进行持久化,而主进程是不会进行任何 IO 操作的,这样就确保了 redis 极高的性能。
RDB方式会在一定的时间间隔内,存储数据进入文件。
优点:

适合大规模的数据恢复
按照业务定时备份
对数据完整性和一致性要求不高
RDB 文件在内存中的加载速度要比AOF快得多
虽然 RDB 有不少优点,但它的缺点也是不容忽视的。

如果你对数据的完整性非常敏感,那么 RDB 方式就不太适合你,因为即使你每 5 分钟都持久化一次,当 redis 故障时,仍然会有近 5 分钟的数据丢失。

所以,redis 还提供了另一种持久化方式,那就是 AOF。

配置
打开配置文件redis.windows.conf

1、Redis 6.0.16及以下:

 

上图内容为:

save 900 1:每隔 900s(15min),如果有超过1个 key 发生了变化,就写一份新的 RDB 文件。

300 10:每隔 300s(5min),如果有超过 10个 key 发生了变化,就写一份新的 RDB 文件。

2、Redis 6.0.16以上:

 

指令介绍
使用指令:
save:主程序中执行会阻塞当前redis服务器,直到持久化工作完成行save命令期间,Redis不能处理其他命令,线上禁止使用。

bgsave(默认):Redis会在后台异步进行快照操作,不阻寒快照同时还可以响应客户端请求,该触发方式会fork一个子进程由子进程复制持久化过程。

lastsave:获取最后一次成功执行快照的时间

下图为lastsave的使用方式:


dump文件修复指令
redis- check- rdb
1
使用后效果如下:


快照禁用
配置文件中修改为:save后跟空格,具体结果如下图所示:


AOF
开启:

在redis配置文件redis.windows.conf中:

appendonly yes
1
注意:

AOF保存的是appendonly.aof 文件
默认的 AOF 持久化策略是每秒钟 fsync 一次(fsync 是指把缓存中的写指令记录到磁盘中),因为在这种情况下,redis 仍然可以保持很好的处理性能,即使 redis 故障,也只会丢失最近 1 秒钟的数据。
如果在追加日志时,恰好遇到磁盘空间满、inode 满或断电等情况导致日志写入不完整,也没有关系,redis 提供了 redis-check-aof 工具,可以用来进行日志修复。
工作流程:


命令到达Redis Server 以后并不是直接写入AOF文件,会将其这些命令先放入AOF缓存中进行保存。
AOF缓冲区实际上是内存中的一片区域,存在的目的是当这些命令达到一定量以后再写入磁盘,避免频繁的磁盘IO操作。
AOF缓冲会根据AOF缓冲区同步文件的三种写回策略将命令写入磁盘上的AOF文件。
文件重写:
因为采用了追加方式,如果不做任何处理的话,AOF 文件会变得越来越大,为此,redis 提供了 AOF 文件重写(rewrite)机制,即当 AOF 文件的大小超过所设定的阈值时,redis 就会启动 AOF 文件的内容压缩,只保留可以恢复数据的最小指令集。

AOF 重写的内部运行原理:

在重写即将开始之际,redis 会创建(fork)一个“重写子进程”,这个子进程会首先读取现有的 AOF文件,并将其包含的指令进行分析压缩并写入到一个临时文件中。
与此同时,主工作进程会将新接收到的写指令一边累积到内存缓冲区中,一边继续写入到原有的 AOF 文件中,这样做是保证原有的 AOF 文件的可用性,避免在重写过程中出现意外。
当“重写子进程”完成重写工作后,它会给父进程发一个信号,父进程收到信号后就会将内存中缓存的写指令追加到新 AOF 文件中。
当追加结束后,redis 就会用新 AOF 文件来代替旧 AOF 文件,之后再有新的写指令,就都会追加到新的 AOF 文件中了。
三种写回策略:


混合使用
最后,在实际使用两个进行混合使用。

开启混合使用,redis配置文件中:

aof- use- rdb- preamble yes
1


当开启混合时,数据恢复主要使用AOF方式,重启只加载aof文件。

标签:AOF,文件,Redis,redis,指令,RDB
From: https://www.cnblogs.com/raincedar/p/18278534

相关文章

  • redis
    1redis安装和配置#redis是什么开源:基于c编写的,早起版本2w3千行基于键值对的存储系统:字典形式多种数据结构:字符串,hash,列表,集合,有序集合高性能,功能丰富#Redis特性(8个)1速度快:10wops(每秒10w读写),数据存在内存中,c语言实现,数据单线程模型2持久化:rdb和aof3多种数据结......
  • Redis的键与值简述
     键值对分别是啥子?Redis键值对均为对象键——字符串对象值——各种对象——及其底层编码    值:可以是字符串、列表、哈希、集合、有序集合对象。五者之一。底层数据结构该图是值——各对象——底层数据结构。值的底层数据结构对应值--五对象之一 ==> ......
  • 01.Redis常用的一些命令
    简介:Redis是一款开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存也可持久化的日志型、Key-Value高性能数据库。Redis与其他Key-Value缓存产品相比有以下三个特点:支持数据持久化,可以将内存中的数据保存在磁盘中,重启可再次加载使用支持简单的Key-Value类型的......
  • redis哨兵模式搭建
    Redis哨兵模式搭建master:192.168.1.1slave1:192.168.1.2slave2:192.168.1.3Redis服务安装这里Redis版本为5.0.3。Redis的安装步骤为:解压、编译、配置、启动(以manaster举例安装)创建目录mkdir/app/redis_6379/{dump,log,conf,run}解压安装包tar-zxvfredis-5.0.3.ta......
  • Linux Redis 服务设置开机自启动
    @目录前言一、准备工作二、操作步骤2.1修改redis.conf文件2.2创建启动脚本2.3设置redis脚本权限2.4设置开机启动2.5验证总结前言请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、提示:以下是本篇文章正文内容,下面案例可供参考一、准备工作注意:准备已安装好的Re......
  • CentOS7.9部署Redis
    简介本章节主要讲的是在Linux系统CentOS7.9上去完成Redis软件的安装步骤1.下载Redis安装包2.解压Redis压缩包3.yum安装gcc依赖4.跳转到Redis解压目录下5.编译安装6.启动Redis实施1.下载Redis安装包wgethttp://download.redis.io/releases/redis-4.0.6.t......
  • 什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防
    什么是未授权访问漏洞?Hadoop&Redis靶场实战——Vulfocus服务攻防一、介绍未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目......
  • 【Redis —— 03 SpringBoot整合Redis】
    SpringBoot整合Redis是一种常见的做法,用于提升应用的性能和可扩展性。通过将Redis作为缓存或数据存储,应用可以实现快速的数据读写和高效的资源管理。以下是一个基本的整合步骤:1.引入依赖首先,在你的pom.xml文件中添加Redis和SpringDataRedis的依赖:<!--Sprin......
  • 【Redis —— 04 Redis配置文件】
    Redis配置文件(通常为redis.conf)包含多种配置选项,可以调整Redis服务器的行为和性能。以下是Redis配置文件中的常见配置项及其详解:官网:Redisconfiguration|Docs常用配置项1.基本配置bind绑定的IP地址。如果你想让Redis监听多个IP地址,可以用空格分隔多个IP。示例:b......
  • 【Redis —— 05 RDB & AOF】
    Redis提供了两种持久化方式:RDB(RedisDatabase)和AOF(Append-OnlyFile)。这两种方式各有优缺点,可以根据具体需求进行选择和配置。RDB持久化工作原理RDB通过创建数据库的快照来保存数据到磁盘中。快照是指在某个时刻将所有数据保存到一个二进制文件中,文件的默认名称是dump.......