【12期】谈一谈redis两种持久化机制的区别?

这篇具有很好参考价值的文章主要介绍了【12期】谈一谈redis两种持久化机制的区别?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Redis两类持续性的方法

  1. RDB方案可以在规定时间间隔内创建数据集的时间点快照。
  2. AOF方案记录了服务器执行的所有写操作命令,并在服务器启动时通过重新执行这些命令来还原数据集。AOF文件完全遵循Redis协议格式保存,新命令会被追加到文件末尾。此外,Redis还能在后台对AOF文件重写以确保不超过实际需要的文件大小。
  3. Redis还可同时使用AOF和RDB持续性方法。在这种情况下,Redis重启时将优先使用AOF文件还原数据集,因为AOF文件所保存数据通常比RDB文件完整。

RDB的优势

  1. RDB是一个非常紧凑的文件,保存了Redis在某一时间点上的数据集。此特点使得RDB文件非常适合备份用途。比如,可以每小时备份一次RDB文件,在每天备份一次,以便在问题发生时可以恢复到不同版本的数据集。
  2. RDB非常适合用于灾难恢复。它只有一个文件且内容紧凑,可以加密后传输到其他数据中心或亚马逊S3中。
  3. RDB可以最大化Redis的性能。父进程在保存RDB文件时只需要fork出一个子进程,然后子进程负责处理所有保存工作,父进程无需执行任何磁盘I/O操作。
  4. RDB在恢复大数据集时速度比AOF快。

RDB的劣势

  1. 如果需要最小化数据丢失风险,RDB不适合。虽然Redis允许设置不同的保存点来控制保存RDB文件的频率,但由于RDB文件需要保存整个数据集状态,所以并非轻松操作。因此,可能需要至少5分钟才能保存一次RDB文件。在这种情况下,一旦发生故障停机,可能会丢失几分钟的数据。
  2. 每次保存RDB时,Redis都要fork()一个子进程来进行实际持久化工作。对于大型数据集,fork()可能耗时较长,导致服务器在某些毫秒内停止处理客户端。如果数据集特别大且CPU时间紧张,这种停机时间甚至可能长达一秒钟。尽管AOF重写也需要进行fork(),但无论AOF重写的执行间隔有多长,数据的耐久性都不会有损失。

AOF的优势

  1. 使用AOF持久化可以极大地提高Redis的持久性。可以设置不同的fsync策略,例如无fsync、每秒一次fsync或每次写入命令时fsync。默认策略为每秒一次fsync,在此配置下,Redis仍然能够保持良好性能,即使发生故障停机,最多只会丢失一秒钟的数据(fsync在后台线程执行,所以主线程可以继续处理命令请求)。
  2. AOF文件是一个只进行追加操作的日志文件,因此写入AOF文件不需要seek操作。即使日志中包含未完整写入的命令(如写入时磁盘已满,写入中断等),redis-check-aof工具也可以轻松修复此类问题。
  3. 当AOF文件体积变大时,Redis可以自动在后台对AOF重写。重写后的新AOF文件仅包含恢复当前数据集所需的最小命令集合。整个重写过程是安全的,因为Redis在创建新AOF文件时会继续将命令追加到现有的AOF文件中,即使在重写过程中发生故障停机,现有的AOF文件也不会丢失。一旦新AOF文件创建完成,Redis会从旧的AOF文件切换到新的AOF文件,并开始追加操作。
  4. AOF文件以有序的方式保存对数据库执行的所有写入操作,这些操作以Redis协议格式保存,使得AOF文件内容容易阅读和解析。导出AOF文件也很简单,举个例子,如果不小心执行了FLUSHALL命令,只要停止服务器,移除AOF文件末尾的FLUSHALL命令,并重启Redis,就可以将数据集恢复到FLUSHALL执行之前的状态。

AOF的劣势

  1. 对于相同的数据集来说,AOF文件的体积通常比RDB文件的体积大。
  2. 根据所使用的fsync策略,AOF的速度可能会慢于RDB。一般情况下,每秒一次fsync的性能依然很高,关闭fsync可以使AOF与RDB具有相同的速度,即使在高负载下也如此。但在处理大量写入负载时,RDB可以提供更可靠的最大延迟时间。
  3. AOF曾经发生过一些bug,导致在重新加载AOF文件时无法恢复到保存时的原样。这种bug并不常见,并且测试套件已添加了测试以确保恢复功能正常。虽然AOF的这些bug不太常见,但与RDB相比,几乎不可能出现这种问题。

本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-682478.html

到了这里,关于【12期】谈一谈redis两种持久化机制的区别?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • redis的持久化机制

    redis的持久化机制

    简单来说就是将内存数据保存到硬盘,防止机器重启后数据丢失。 1)拍快照(RDB,Redis DataBase):将某一个时刻Redis的内存数据,以二进制的方案写入磁盘,速度快,会数据丢失。 2)文件追加方案(AOF,Append Only File):记录所有的操作命令,并以日志的形式追加到文件中,速度慢

    2024年02月16日
    浏览(9)
  • 搞明白Redis持久化机制

    Redis是一种内存数据库,其内存中的数据存储在计算机的内存中,如果服务器发生崩溃或者重启,内存中的数据将会丢失。为了避免这种情况发生,Redis提供了两种持久化机制:RDB和AOF。 Redis支持将当前数据状态快照持久化到硬盘上,这种快照是一个二进制文件,包含了Redis在

    2023年04月25日
    浏览(11)
  • redis持久化机制 & 事务详解

    redis持久化机制 & 事务详解

    目录 前言: 持久化机制 RDB(Redis DataBase) 手动触发  save bgsave 自动触发 RDB特点 AOF(append only file) 缓冲区刷新策略 重写机制 aof重写流程 混合持久化 事务 事务操作命令 WATCH WATCH实现原理     redis为了保证高可用引入了持久化机制,目的就是为了redis服务器重启时可以恢复

    2024年02月11日
    浏览(14)
  • 深入解析 Redis 持久化机制

    深入解析 Redis 持久化机制

    我们都知道,Redis 的数据存储在内存中, 一旦服务器宕机,内存中的数据将全部丢失。因此,对 Redis 来说,实现数据的持久化,避免从后端数据库中进行恢复,是至关重要的。本篇我们详细讲解下 Redis 的三种持久化机制,分别是  AOF(Append Only File)  日志和  RDB 快照  以及

    2024年02月12日
    浏览(17)
  • Redis系列(二):深入解读Redis的两种持久化方式

    Redis系列(二):深入解读Redis的两种持久化方式

    博客地址:blog.zysicyj.top Redis引入持久化机制是为了解决内存数据库的数据安全性和可靠性问题。虽然内存数据库具有高速读写的优势,但由于数据存储在内存中,一旦服务器停止或崩溃,所有数据将会丢失。持久化机制的引入旨在将内存中的数据持久化到磁盘上,从而在服务

    2024年02月13日
    浏览(14)
  • 【Redis】—— Redis的RDB持久化机制

    【Redis】—— Redis的RDB持久化机制

                                                                       💧 【 R e d i s 】—— R e d i s 的 R D B 持久化机制 color{#FF1493}{【Redis】 —— Redis的RDB持久化机制} 【 R e d i s 】 —— R e d i s 的 R D B 持久化机制 💧           🌷 仰望天空

    2024年02月13日
    浏览(13)
  • 【Redis】Redis持久化机制RDB与AOF

    【Redis】Redis持久化机制RDB与AOF

    目录 一、RDB 1、概念 2、RDB文件保存 3、执行RDB 4、触发RDB 5、fork原理 6、RDB的缺点 二、AOF 1、概念 2、开启AOF 3、触发AOF 4、触发重写AOF 三、区别 RDB全称为Redis Database Backup File(Redis数据备份文件),也叫做Redis数据快照。简单的来说就是把某一时刻Redis内存里的数据都记录到磁

    2024年02月08日
    浏览(24)
  • redis持久化机制:RDB和AOF

    Redis的持久化机制主要依赖于两种方法:RDB(Redis Database)和AOF(Append Only File)。这两种机制可以单独使用,也可以同时使用,以提高数据的持久性和可靠性。 RDB(Redis Database) 工作原理 : RDB通过创建数据集的快照来进行持久化。 快照创建可以在指定的时间间隔内自动完成

    2024年01月19日
    浏览(16)
  • Redis持久化:RDB和AOF机制详解

    Redis持久化:RDB和AOF机制详解

    目录 1.Redis持久化简介 2.RDB持久化    2.1 什么是 RDB 持久化?    2.2 触发方式    2.3 Redis.conf中配置RDB    2.4 RDB 更深入理解    2.5 RDB优缺点 3.AOF持久化    3.1 什么是 AOF 持久化?    3.2 如何实现AOF    3.3 Redis.conf中配置AOF    3.4 深入理解AOF重写 4.RDB和AOF混合方式(4.0版本

    2024年02月12日
    浏览(13)
  • 彻底搞懂Redis持久化机制,轻松应对工作面试

    彻底搞懂Redis持久化机制,轻松应对工作面试

    Redis是基于内存存储的数据库,如果遇到服务重启或者崩溃,内存中的数据将会被清空。所以为了确保数据安全性和可靠性,我们需要将内存中的数据持久化到磁盘上。 持久化不仅可以防止由于系统故障、重启或者其他原因导致的数据丢失。还可以用于备份、数据恢复和迁移

    2023年04月20日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包