首页 > 其他分享 >RDB、AOF详解及优缺点总结

RDB、AOF详解及优缺点总结

时间:2023-10-08 09:58:33浏览次数:45  
标签:AOF 文件 优缺点 Redis 保存 RDB 数据

1.RDB模式优缺点
1.1.RDB 模式优点
1.1.1.RDB快照保存了某个时间点的数据,可以通过脚本执行redis指令bgsave(非阻塞,后台执行)或者save(会阻塞写操作,不推荐)命令自定义时间点备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本,很适合备份,并且此文件格式也支持有不少第三方工具可以进行后续的数据分析。比如: 可以在最近的24小时内,每小时备份一次RDB文件,并且在每个月的每一天,也备份一个RDB文件。这样的话,即使遇上问题,也可以随时将数据集还原到不同的版本。

1.1.2.RDB可以最大化Redis的性能,父进程在保存 RDB文件时唯一要做的就是fork出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘工/0操作。

1.1.3.RDB在大量数据,比如几个G的数据,恢复的速度比AOF的快

1.2.RDB 模式缺点
1.2.1.不能实时保存数据,可能会丢失自上一次执行RDB备份到当前的内存数据
如果你需要尽量避免在服务器故障时丢失数据,那么RDB不适合你。虽然Redis允许你设置不同的保存点(save point)来控制保存RDB文件的频率,但是,因为RDB文件需要保存整个数据集的状态,所以它并不是一个轻松快速的操作。因此一般会超过5分钟以上才保存一次RDB文件。在这种情况下,一旦发生故障停机,你就可能会丢失好几分钟的数据。

1.2.2.当数据量非常大的时候,从父进程fork子进程进行保存至RDB文件时需要一点时间,可能是毫秒或者秒,取决于磁盘IO性能

1.2.3.在数据集比较庞大时,fork()可能会非常耗时,造成服务器在一定时间内停止处理客户端﹔如果数据集非常巨大,并且CPU时间非常紧张的话,那么这种停止时间甚至可能会长达整整一秒或更久。虽然 AOF重写也需要进行fork(),但无论AOF重写的执行间隔有多长,数据的持久性都不会有任何损失

2.AOF模式优缺点
2.1.AOF 模式优点
2.1.1.数据安全性相对较高,根据所使用的fsync策略(fsync是同步内存中redis所有已经修改的文件到存储设备),默认是appendfsync everysec,即每秒执行一次 fsync,在这种配置下,Redis 仍然可以保持良好的性能,并且就算发生故障停机,也最多只会丢失一秒钟的数据( fsync会在后台线程执行,所以主线程可以继续努力地处理命令请求)

2.1.2.由于该机制对日志文件的写入操作采用的是append模式,因此在写入过程中不需要seek, 即使出现宕机现象,也不会破坏日志文件中已经存在的内容。然而如果本次操作只是写入了一半数据就出现了系统崩溃问题,不用担心,在Redis下一次启动之前,可以通过 redis-check-aof 工具来解决数据一致性的问题

2.1.3.Redis可以在 AOF文件体积变得过大时,自动地在后台对AOF进行重写,重写后的新AOF文件包含了恢复当前数据集所需的最小命令集合。整个重写操作是绝对安全的,因为Redis在创建新 AOF文件的过程中,append模式不断的将修改数据追加到现有的 AOF文件里面,即使重写过程中发生停机,现有的 AOF文件也不会丢失。而一旦新AOF文件创建完毕,Redis就会从旧AOF文件切换到新AOF文件,并开始新AOF文件进行追加操作。

2.1.4.AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,也可以通过该文件完成数据的重建AOF文件有序地保存了对数据库执行的所有写入操作,这些写入操作以Redis协议的格式保存,因此 AOF文件的内容非常容易被人读懂,对文件进行分析(parse)也很轻松。导出(export)AOF文件。也非常简单:举个例子,如果不小心执行了FLUSHALL.命令,但只要AOF文件未被重写,那么只要停止服务器,移除 AOF文件末尾的FLUSHAL命令,并重启Redis ,就可以将数据集恢复到FLUSHALL执行之前的状态。

2.2.AOF 模式缺点
2.2.1.即使有些操作是重复的也会全部记录,AOF 的文件大小要大于 RDB 格式的文件
2.2.2.AOF 在恢复大数据集时的速度比 RDB 的恢复速度要慢
2.2.3.根据fsync策略不同,AOF速度可能会慢于RDB
2.2.4.bug 出现的可能性更多

3.RDB和AOF 的选择
3.1.如果主要充当缓存功能,或者可以承受数分钟数据的丢失, 通常生产环境一般只需启用RDB即可,此也是默认值
3.2.如果数据需要持久保存,一点不能丢失,可以选择同时开启RDB和AOF。一般不建议只开启AOF

标签:AOF,文件,优缺点,Redis,保存,RDB,数据
From: https://www.cnblogs.com/tanll/p/17748170.html

相关文章

  • 对比redis的RDB、AOF模式的优缺点
     1.RDB模式优缺点1.1.RDB模式优点1.1.1.RDB快照保存了某个时间点的数据,可以通过脚本执行redis指令bgsave(非阻塞,后台执行)或者save(会阻塞写操作,不推荐)命令自定义时间点备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本,很适合备份,并且此文件格式也支持......
  • Mac故障排查系列:redis删除key报错MISCONF Redis is configured to save RDB snapshots
    背景:Mac下使用AnotherRedisDesktopManager客户端,删除key,遇到报错:MISCONFRedisisconfiguredtosaveRDBsnapshots,butit'scurrentlyunabletopersisttodisk.Commandsthatmaymodifythedatasetaredisabled,becausethisinstanceisconfiguredtoreporte......
  • Lombok简介、使用、工作原理、优缺点
    1.Lombok简介Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。2.Lombok使用使用Lombok需要的开发环境Java+M......
  • Redis7 数据持久化RDB
    一、概述1、官网介绍2、是什么在指定时间间隔,执行数据集的时间点快照实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照。这样一来即使故障宕机,快照文件也不会丢失,数据的可靠性也就得到了保证。这个快照文件就称为RDB文件(dump.rdb),其中,R......
  • mysql数据库和oracle的优缺点
    MySQL和Oracle是两个广泛使用的关系型数据库管理系统(RDBMS),每种数据库都有其自身的优势和不足。MySQL的优点开源性:MySQL是一个开源的软件,用户可以免费使用和修改。这降低了成本,并有利于那些财务资源有限的公司。此外,开源社区的贡献也使得MySQL能够持续优化和更新。易用性:MySQL具有高......
  • 【WPF】PasswordBox汇总
    一、回车事件写法1:绑定:TextPassWord.KeyDown+=TextPassWord_KeyDown;privatevoidTextPassWord_KeyDown(objectsender,KeyEventArgse){if(e.Key==Key.Enter){TextErr.Text=null;......
  • oracle to polardb-o (postgresql) dblink创建步骤
    一、架构图本质上polardb-o的底层是postgresql数据库,因此该需求可以转换为创建 oracleto postgresql的dblink。1. 原理图 2.实际架构 下面为实际创建步骤二、安装依赖包yuminstall-yunixODBCyuminstall-yunixODBC-develyuminstall-ylibtoolyuminstall-ylib......
  • 台上台中台下盆优缺点
     台上盆好还是台下盆好?  根据自己的情况来选,首先建议大家排除台上盆的  因为它只有一个优点,就是师父好安装,剩下的就是缺点了  比如不好打扫卫生,每次垃圾都要经过台边被挡一下  弄得边缘很脏,让厨房失去了幸福感,可以直接排除  台中盆,优点......
  • [粘贴]github-redis-rdb-cli
    redis-rdb-cliAtoolthatcanparse,filter,split,mergerdbandanalyzememoryusageoffline.Itcanalsosync2redisdataandallowuserdefinethereownsinkservicetomigrateredisdatatosomewhere.  ChatwithauthorContracttheauthorchen.b......
  • java分布式特点_java分布式架构是什么?分布式架构的优缺点有哪些?
    作为目前互联网最流行的技术之一,分布式是当仁不让的,小伙伴们都了解什么是分布式架构吗?它的优缺点又有哪些呢?快听小编为你介绍介绍吧。一、什么是分布式架构?分布式概念要想理解什么是分布式,我们一定要知道以下这些性质:1)、首先,一个分布式系统它一定是由多个节点组成的系......