返回顶部
首页 > 资讯 > 精选 >Redis持 RDB与AOF的执行过程是怎么样的
  • 224
分享到

Redis持 RDB与AOF的执行过程是怎么样的

2023-06-25 12:06:53 224人浏览 安东尼
摘要

今天就跟大家聊聊有关Redis持 RDB与AOF的执行过程是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言Redis 持久化支持两种方式 RDB 与 AOF,文章记录两者

今天就跟大家聊聊有关Redis持 RDB与AOF的执行过程是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

前言

Redis 持久化支持两种方式 RDB 与 AOF,文章记录两者的执行过程与配置。

一、RDB

RDB 持久化是把当前进程数据生成快照保存到硬盘的过程,触发 RDB 持久化过程分为手动触发和自动触发。

1. save 命令

会堵塞当前 Redis 服务器,直到 RDB 结束为止,对数据量较大或者内存较大的实例,会堵塞较长时间,生产环境不建议使用。如果手动执行 save 命令,Redis 会记录下方日志

127.0.0.1:6379> save
OK

* DB saved on disk

2. bgsave 命令

Redis 进程执行 fork 操作创建子进程,RDB 持久化过程由子进程负责,完成后自动结束。阻塞只发生在 fork 阶段,一般时间很短。如果手动执行 bgsave 命令,Redis 会记录下方日志。

* Background saving started by pid 90338
* DB saved on disk
* RDB: 0 MB of memory used by copy-on-write
* Background saving terminated with success

bgsave 对 save 堵塞进行优化,Redis 内部涉及 RDB 操作都是由 bgsave 完成。

3. 内部触发 RDB 场景

  • 使用 save 相关配置,如 save m n 表示 m 秒内数据集存在 n 次修改时,触发一次 RDB;

  • 从节点执行全量复制操作,主节点自动执行 bgsave 生成 RDB 文件发送给从节点;

  • 执行 debug relad 重新加载 Redis 时,也会触发生产 RDB;

  • 默认情况下,执行 shutdown 关闭 Redis 时,如果没有开启 AOF 持久化功能,则会触发 RDB。

4. RDB 参数配置

通过设置 dir 可以配置 RDB 保存位置 dbfilename 可以设置文件名。

config set dir /opt/redis-5.0.12/backup
config set dbfilename myback.rdb

Redis 默认采用 LZF 算法对生成的RDB文件做压缩处理,压缩后的文件远远小于内存大小,默认开启,可以通过 rdbcompression 参数配置。

config set rdbcompression{yes|no}

压缩 RDB 虽然会消耗 CPU 但是可以大幅度减少文件体积,方便存储或通过网络发送给从节点。

5. RDB 缺点

RDB 方式数据没办法做到实时持久化/秒级持久化。因为 bgsave 每次运行都要执行 fork 操作创建子进程,属于重量级操作,频繁执行成本过高。

RDB文件使用特定二进制格式保存,Redis 版本演进过程中有多个格式的 RDB 版本,存在老版本 Redis 服务无法兼容新版 RDB 格式的问题。

二、AOF

AOF(appendonlyfile)持久化:以独立日志的方式记录每次写命令,重启时再重新执行 AOF 文件中的命令达到恢复数据的目的。AOF 的主要作用是解决了数据持久化的实时性,目前已经是 Redis 持久化的主流方式。

1. 参数配置

# 配置开启 AOFconfig set appendonly yes# 配置文件名,默认 appendonly.aofconfig set appendfilename xxx.aof# 存储位置配置,与 RDB 一样config set dir /opt/redis-5.0.12/backup

2. AOF 执行流程

Redis持 RDB与AOF的执行过程是怎么样的

所有的命令都会追加到 aof_buf(缓冲区)中;AOF 缓冲区根据对应的策略向磁盘同步操作;随着 AOF 文件越来越大,需要定期对 AOF 重写,达到压缩目的;当 Redis 服务器重启时,可以加载AOF文件进行数据恢复。 3. 重写机制

手动触发:

bgrewriteaof

自动触发,根据下方两个参数设置自动触发机制:

auto-aof-rewrite-min-size
auto-aof-rewrite-percentage

看完上述内容,你们对Redis持 RDB与AOF的执行过程是怎么样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Redis持 RDB与AOF的执行过程是怎么样的

本文链接: https://lsjlt.com/news/304768.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis持 RDB与AOF的执行过程是怎么样的
    今天就跟大家聊聊有关Redis持 RDB与AOF的执行过程是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言Redis 持久化支持两种方式 RDB 与 AOF,文章记录两者...
    99+
    2023-06-25
  • Redis 持久化 RDB 与 AOF的执行过程
    目录前言一、RDB1. save 命令2. bgsave 命令3. 内部触发 RDB 场景4. RDB 参数配置5. RDB 缺点二、AOF1. 参数配置2. AOF 执行流程3. ...
    99+
    2024-04-02
  • 进阶的Redis之数据持久化RDB与AOF
    大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数...
    99+
    2024-04-02
  • Redis的持久化机制采用RDB还是AOF
    这篇文章主要讲解了“Redis的持久化机制采用RDB还是AOF”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis的持久化机制采用RDB还是AOF”吧!...
    99+
    2024-04-02
  • 如何进行Redis持久化RDB和AOF的分析
    如何进行Redis持久化RDB和AOF的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Redis持久化方案Redis是内存数据库,数据都是...
    99+
    2024-04-02
  • redis中RDB和AOF持久化的优缺点是什么
    小编给大家分享一下redis中RDB和AOF持久化的优缺点是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Redis 提供了 RDB 和 AOF 两种持久化方案:RDB:生成指定时间间...
    99+
    2024-04-02
  • 图解Redis,谈谈Redis的持久化,RDB快照与AOF日志
    目录 专栏导读 一、RDB持久化 1、自动触发 2、手动触发 3、设置保存条件 4、加解密 5、R...
    99+
    2023-09-21
    redis 数据库 分布式
  • Redis的RDB和AOF方法怎么用
    今天小编给大家分享一下Redis的RDB和AOF方法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Redis持久化方案...
    99+
    2023-06-27
  • Redis中RDB和AOF的区别是什么
    Redis中的RDB(Redis DataBase)和AOF(Append Only File)是两种持久化方式,用于将数据持久化到...
    99+
    2024-05-07
    Redis
  • redis之RDB、AOF与复制时对过期键怎么处理
    这篇文章将为大家详细讲解有关redis之RDB、AOF与复制时对过期键怎么处理,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生成RDB文件在执行SAVE命令或者BGSAV...
    99+
    2024-04-02
  • redis的RDB持久化是什么
    Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。这...
    99+
    2024-04-02
  • redis中的AOF持久化是什么
    redis中的AOF持久化是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。AOF持久化它也是Redis持久化的重要手段之一...
    99+
    2024-04-02
  • Oracle ASM Rebalance执行过程是怎样的
    这篇文章主要讲解了“Oracle ASM Rebalance执行过程是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle ASM Rebala...
    99+
    2024-04-02
  • MGR中事务的执行过程是怎样的
    本篇文章为大家展示了MGR中事务的执行过程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MGR中group_replication插件最重要的功能就是事务分...
    99+
    2024-04-02
  • MySQL中update语句的执行过程是怎么样的
    这篇文章主要为大家展示了“MySQL中update语句的执行过程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中update语句的执行过程是...
    99+
    2024-04-02
  • GO怎么实现Redis的AOF持久化
    这篇文章主要介绍“GO怎么实现Redis的AOF持久化”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“GO怎么实现Redis的AOF持久化”文章能帮助大家解决问题。GO实现Redis的AOF持久化将用...
    99+
    2023-07-05
  • mysql的执行流程是怎样的?
    MySQL 可以分为 Server 层和存储引擎层两部分Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核 心服务功能,以及所有的内置函数,所有跨存储引 擎的功能都...
    99+
    2024-04-02
  • 执行truncate触发ORA-02266解决过程是怎样的
    这篇文章给大家介绍执行truncate触发ORA-02266解决过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开发提了个需求,要求将测试数据库的数据清空,其中涉及主子表的关...
    99+
    2024-04-02
  • Java对象方法调用执行过程是怎样的
    这篇文章主要介绍“Java对象方法调用执行过程是怎样的”,在日常操作中,相信很多人在Java对象方法调用执行过程是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java对象方法调用执行过程是怎样的”的疑...
    99+
    2023-06-29
  • struts2的执行过程是什么
    Struts2的执行过程可以分为以下几个步骤:1. 客户端发送请求:客户端通过浏览器向服务器发送HTTP请求。2. 请求被Strut...
    99+
    2023-08-18
    struts2
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作