redis持久化RDB和AOF的区别

Redis 持久化机制深度解析:RDB 与 AOF 的区别与应用场景 Redis 的 RDB 和 AOF 持久化机制各有优缺点,适用于不同的业务场景。RDB 适合用于数据备份和恢复速度要求高的场景,而 AOF 则适合用于数据安全性要求高的场景。在实际应用中,可以根据业务需求选择合适的持久化策略,或者同时启用两种机制,以兼顾数据安全性和恢复速度。通过深入理解 RDB 和 AOF 的工作原理及其区别,我们可以更好地配置和优化 Redis 的持久化策略,确保数据的安全性和系统的高性能。 阅读详情

一、redis两种持久化方式的介绍

在redis中数据的持久化有两种方式,分别是RDB和AOF,如果没有配置持久化,redis重启后数据就全丢失了,所以需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,该如何选择?下面就分别介绍下RDB和AOF两种持久化方式的区别,以便能够在平时的工作中更好的对redis的持久化方式作出选择。

二、RDB和AOF的区别

RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

三、RDB和AOF的优缺点

RDB存在哪些优势呢?

1). 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。

2). 对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。

3). 性能最大化。对于Redis的服务进程而言,在开始持久化时,它唯一需要做的只是fork出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行IO操作了。

4). 相比于AOF机制,如果数据集很大,RDB的启动效率会更高。

RDB又存在哪些劣势呢?

1). 如果你想保证数据的高可用性,即最大限度的避免数据丢失,那么RDB将不是一个很好的选择。因为系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。

2). 由于RDB是通过fork子进程来协助完成数据持久化工作的,因此,如果当数据集较大时,可能会导致整个服务器停止服务几百毫秒,甚至是1秒钟。

AOF的优势有哪些呢?

1). 该机制可以带来更高的数据安全性,即数据持久性。Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事实上,每秒同步也是异步完成的,其效率也是非常高的,所差的是一旦系统出现宕机现象,那么这一秒钟之内修改的数据将会丢失。而每修改同步,我们可以将其视为同步持久化,即每次发生的数据变化都会被立即记录到磁盘中。可以预见,这种方式在效率上是最低的。至于无同步,无需多言,我想大家都能正确的理解它。

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

3). 如果日志过大,Redis可以自动启用rewrite机制。即Redis以append模式不断的将修改数据写入到老的磁盘文件中,同时Redis还会创建一个新的文件用于记录此期间有哪些修改命令被执行。因此在进行rewrite切换时可以更好的保证数据安全性。

4). AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。事实上,我们也可以通过该文件完成数据的重建。

AOF的劣势有哪些呢?

1). 对于相同数量的数据集而言,AOF文件通常要大于RDB文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。

2). 根据同步策略的不同,AOF在运行效率上往往会慢于RDB。总之,每秒同步策略的效率是比较高的,同步禁用策略的效率和RDB一样高效。

二者选择的标准,就是看系统是愿意牺牲一些性能,换取更高的缓存一致性(aof),还是愿意写操作频繁的时候,不启用备份来换取更高的性能,待手动运行save的时候,再做备份(rdb)。rdb这个就更有些最终一致性的意思了。

四、常用配置

RDB持久化配置

redis会将数据集的快照dump到dump.rdb文件中。此外,我们也可以通过配置文件来修改redis服务器dump快照的频率,在打开6379.conf文件之后,我们搜索save,可以看到下面的配置信息:

save 900 1           #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。

save 300 10          #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。

save 60 10000        #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

AOF持久化配置

在redis的配置文件中存在三种同步方式,它们分别是:

appendfsync always    #每次有数据修改发生时都会写入AOF文件。

appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。

appendfsync no        #从不同步。高效但是数据不会被持久化。
Redis 持久化 AOF 与 RDB 的区别 ‌全称‌:‌R‌edis ‌D‌ata‌b‌ase(Redis 数据库快照)RDB 通过生成内存数据的二进制快照文件(默认文件名dump.rdb),将某一时刻的完整数据库状态持久化到磁盘‌。‌触发方式‌:SAVE(阻塞主线程)或BGSAVE(后台子进程异步生成)。自动触发:通过配置规则(例如save 900 1表示 900 秒内至少 1 次修改触发快照)‌。‌全称‌:‌A‌ppend-‌O‌nly ‌F‌ile(仅追加文件日志)AOF 记录所有写操作命令(如SETHSET。 阅读详情

相关推荐

Redis持久化中RDB和AOF有哪些区别?你知道吗!

前言 关于Redis的知识点总结了一个思维导图分享给大家 Redis是一个内存数据库,为了保证数据不丢失,必须把数据保存到磁盘,这就叫做持久化。 Redis有两种持久化方法:RDB方式以及AOF方式。 RDB持久化 RDB持久化把内存中的数据持久化到硬盘,生成RDB文件,也就是“快照”。通过RDB文件可以重新恢复内存中的数据。RDB文件是一个压缩过的文件,因此RDB持久化的体积比AOF小,因为存储的是数据,所以恢复很快,性能好,但是可能会丢失最后一次持久化的数据。 RDB持久化机制的两种方式 显示开启

程序媛小琬的博客 1423

Redis持久化AOF&RDB区别是什么?

Redis提供RDB和AOF两种持久化方式。RDB通过定时将内存数据dump到磁盘上的二进制文件实现持久化,适合大规模数据备份和灾难恢复,但可能丢失最后一次快照后的修改。AOF则记录每个写操作,以日志形式追加到文件中,数据安全性更高,但恢复速度较慢且文件会逐渐增大。两种方式各有优缺点,可根据具体需求和性能要求选择,甚至同时使用以确保数据安全和可靠性。

技术铺掌柜 3438

CCF201803-2 碰撞的小球 python

一些话:已经不知道是第几次做这道题了(大概第三次吧),真的常做常新,每次都有新的细节想法。虽然方法简单粗暴,但好在方便理解,对于我这种菜鸟选手而言。 但在做的过程中,最开始还忽略了输入的小球初始位置有可能是无序的,输出的时候要保持相对位置。CCF真的考验细节,希望上考场时能够认真仔细一点。就酱… #碰撞的小球 #当小球坐标为0或L时,会朝相反方向移动 #当两个小球坐标相等时,会分别转向相反的方向 #计算t秒之后小球的位置 n,L,t = map(int,input().split()) location .

tanya_dre的博客 350

【经验】Redis 持久化机制 RDB 和 AOF 区别

关于 RDB与AOF 也会经常在面试时被问到,结合自己做过的应用场景来分析和回答,会更有说服力,这会表现出你是如何善用技术的优势来解决问题,这是实战经验中的宝贵经验。关注威哥爱编程,一起卷它个底朝天。

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 1304

Cursor插件安装CodeX保姆级教程:从登录到调整面板布局,一步不落

本文提供Cursor编辑器安装CodeX插件的详细教程,涵盖从登录到调整面板布局的全流程。通过优化界面布局和配置参数,帮助开发者提升编码效率,特别适合需要智能代码补全的编程场景。

weixin_42648844的博客 4765

Anchor graph 对齐文献解读

Align then Fusion: Generalized Large-scale Multi-view Clustering with Anchor Matching Correspondences文献解读

atease0001的博客 1165

Redis的RDB和AOF的区别

一、Redis提供了哪些持久化机制 1,RDB持久化: 是在指定的时间间隔内将内存中的数据集快照到磁盘中。 2,AOF持久化: 该机制是以日志追加的形式记录服务器的每一个写操作,当redis服务器启动之初会读取该文件,并加载到数据库中,以保证数据库的数据是完整的。 3,无持久化: 通过配置文件来关闭redis的持久化机制。 redis服务器默认是RDB持久化机制。 二、RDB机制的优势和劣势 优势: a,该机制只有一个文件,对于文件备份归档是相当完美的方式 b,对于

weixin_44143114的博客 1868

Coze智能体网页集成实战:从零搭建免登录AI助手

本文详细介绍了如何利用Coze Chat SDK从零开始为网站集成免登录AI助手。通过获取访问令牌和智能体ID,仅需几行JavaScript代码即可将功能完整的对话窗口嵌入网页,实现开箱即用的智能交互。文章重点讲解了核心部署步骤、会话隔离方案以及UI深度定制方法,帮助开发者快速打造贴合品牌、提升用户体验的网页AI助手。

gold8的专栏 558

Redis持久化RDB和AOF区别

RDB RDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介。 触发机制--主要三种方式 save 同步命令(会阻塞redis) bgsave 异步命令(fork) 自动 #关闭自动保存配置#save 900 1 #900秒 改了一次就自动生成RDB文件#save 300 10 #300秒修改了1

java_atguigu的博客 4640

27、自闭症儿童治疗与玩具设计研究

本研究探讨了自闭症儿童的治疗方法与玩具设计之间的关联,分析了游戏疗法、音乐疗法和职业疗法等在治疗中的应用,并介绍了多种针对自闭症儿童的治疗玩具案例。通过用户研究和多学科合作,提出了以Pro-Ability为核心的设计理念,开发了结合音乐疗法和精细运动训练的智能玩具套件。研究总结了当前成果与局限性,并展望了未来发展方向,旨在为自闭症儿童提供更有效的康复支持。

keras9composer的博客 211

向华为学习——解读158页 华为敏捷园区网技术解决方案【附全文阅读】

华为敏捷园区网解决方案通过策略随行和体验随身技术,满足移动办公场景下的网络需求。该方案采用敏捷交换机和防火墙自动执行策略配置,实现用户身份认证与业务策略的无缝衔接,且策略配置与IP地址解耦,简化了管理流程。相比传统技术,该方案有效解决了用户分级、QoS保障、无线接入等关键问题,确保用户在移动过程中获得一致的网络体验。

cdfunlove的博客 381

redis的 rdb 和 aof 持久化的区别

redis的 rdb 和 aof 持久化的区别 url: http://ptc.35.com/?p=275 aof,rdb是两种 redis持久化的机制。用于crash后,redis的恢复。 rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。 save, shutdown, slave 命令会触发

jackpk的专栏 5万+

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1500

redis持久化---AOF与RDB区别

一,RDB与AOF区别 RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储 AOF持久化方式记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始数据,AOF命令以redis协议追加保存每次写的操作到文件末尾,redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大 只做缓存的时候可以不做任何持久化 同时开启两种持久化方式时 当redis重启时会优先载入A...

weixin_45099622的博客 4358

ESP32 双雷达融合盲区车辆接近预警系统设计与实现

/ 超声波传感器引脚// 触发引脚// 回声引脚// 预警模块引脚// 蜂鸣器引脚// LED引脚// 串口配置(毫米波雷达用UART2)#define BAUD_RATE 115200 // 雷达串口波特率(IWR6843默认配置)// 预警阈值(可根据实际需求调整)// 高危区阈值(3m)// 预警区阈值(10m)// 传感器数据存储// 毫米波雷达距离(m)// 毫米波雷达速度(km/h)// 超声波距离(m)// 融合后距离(m)

weixin_42300449的博客 746

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Redis】Redis两种持久化RDB和AOF的区别

文章目录RDB什么是RDB如何持久化SnapshotRDB优点与缺点AOF什么是AOF持久化优点缺点RDB与AOF如何选择 Redis持久化备份数据的方式有两种:RDB(Redis DataBase) 、 AOF(Append Only File). RDB 什么是RDB 在指定时间间隔内,将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中,来达到恢复数据的。 如何持久化 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写进一个临时文件中,等到持

瑞新の博客:bennyrhys 2876

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

redis的持久化方式RDB和AOF的区别

redis的持久化方式RDB和AOF的区别 1、前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入

bamboo_cqh的博客 519

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

redis持久化之RDB和AOF的区别

持久化之RDB 定义:在指定的时间间隔内生成数据集的时间点快照 RDB 的优点: 1.RDB 是一个非常紧凑的文件 它保存了 Redis 在某个时间点上的数据集。 这种文件非常适合用于进行备份: 比如说,你可以在最近的 24 小时内,每小时备份一次 RDB 文件,并且在每个月的每一天,也备份一个 RDB 文件。 这样的话,即使遇上问题,也可以随时将数据集还原到不同的版本。 2.RDB 非常适用于灾难恢复 它只有一个文件,并且内容都非常紧凑,可以(在加密后)将它传送到别的数据中心,或者亚马逊 S3 中。 3.

tom的博客 1万+

redis 持久化方式 - aof 和 rdb 区别

aof 和 rdb 是 redis 持久化的两种方式。我们看看它们的特点和具体应用场景区别。 此博客将逐步迁移到作者新的博客,可以点击此处进入。 文章目录持久化特点aofrdb使用场景区别持久化详细文档 持久化特点 aof aof 是写命令追加到持久化文件的方式。 aof 支持几种持久化策略,其中每秒数据增量存盘一次效率比较高。 aof 支持 rdb 混合型存储(需要重写处理)。 aof...

wenfh2020的专栏 361

【redis】RDB与AOF持久化的区别

RDB介绍 1、触发机制: save手动触发:阻塞当前redis服务器,直到rdb过程完成。不建议使用 bgsave手动触发:fork创建子进程,由子进程完成持久化。阻塞只存在fork阶段。 自动触发: save m n (在m内修改n次,自动触发bgsave) 从节点执行全量复制,主节点自动执行bgsave 执行debug reload命令,触发sa...

qq_21387121的博客 765

Redis 持久化机制 RDB 和 AOF 区别

Redis 是一个开源的内存数据结构存储系统,广泛应用于缓存、会话存储、实时分析等场景。虽然 Redis 本质上是内存数据库,但它支持持久化机制,将数据保存在磁盘中以防止数据丢失。在 Redis 中,主要有两种持久化机制:RDB(Redis 数据库快照)和 AOF(追加文件)。这两种持久化机制各有优缺点,适用于不同的使用场...

Java_fenxiang的博客 2035

redis持久化rdb和aof的区别

redis持久化分为RDB,AOF,简单介绍下二者的区别和优缺点 RDB持久化机制: 对redis中的数据进行周期性的持久化。 AOF机制: 对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集。 RDB优势: ● 备份策略方便:一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据

weixin_45853175的博客 2279

Redis持久化之RDB和AOF区别对比

前言 Redis支持RDB和AOF两种持久化机制,持久化功能有效的避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 一、触发机制 1、手动触发 手动触发分别对应save和 bgsave 命令。 save命令 阻塞当前Redis服务器,直到RDB过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用。运行save命令对应的Redis日志如下: DB

玲珑骰子安红豆,入骨相思知不知 2241
上一篇: redis 配置主从读写分离
下一篇: 深入了解MyBatis二级缓存
hwmhehe
博客等级 码龄13年 86粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值