Redis中两种持久化机制RDB和AOF(面试常问,工作常用)

【Redis】正确回答RDB-AOF持久化策略面试问题 一、关于Redis的面试真题: 如何用Redis实现分布式锁? 简要说说你对RDB-AOF持久化策略的理解? RDB-AOF持久化策略的优缺点在哪? 经典问题:先更新数据库,还是先更新缓存? 失效策略:缓存过期都有哪些策略? 负载均衡:一致性哈希解决了哪些问题? 缓存高可用:缓存如何保证高可用? redis 集群模式的工作原理能说一下么? 在集群模式下,redis 的 key 是如何寻址的? 分布式寻址都有哪些算 阅读详情

目录

1、持久化流程

2、RDB(Redis DataBase)

3、AOF(Append Only File)


1、持久化流程

持久化一般来说就是指将数据写入磁盘永久保存(持久化 -- 写磁盘)。以下为持久化的主要流程:

(1)客户发送数据。客户端向服务端发送写操作(数据在客户端的内存中)。

(2)服务器接收数据。数据库服务端接收到写请求的数据(数据在服务端的内存中)。

(3)服务器写数据(缓冲区)。服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。

(4)服务器写数据(磁盘缓存)。操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中)。

(5)服务器写数据(磁盘)。磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上)。

 

  • 前三步主要由客户端和服务端的通信、redis数据库完成;
  • 从第四步开始,主要是操作系统完成。

redis如何来实现上面5个保存磁盘的步骤。它提供了两种策略机制,也就是RDB(Redis DataBase)和AOF(Append Only File)


2、RDB(Redis DataBase)

一句话:把数据以快照的形式保存在磁盘上。

RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。

在我们安装了redis之后,所有的配置都是在redis.conf文件中,里面保存了RDB和AOF两种持久化机制的各种配置。

如何触发?既然RDB机制是通过把某个时刻的所有数据生成一个快照来保存,那么就应该有一种触发机制,是实现这个过程。对于RDB来说,提供了三种机制:

  • save
  • bgsave
  • 自动化

具体参见文章:https://baijiahao.baidu.com/s?id=1654694618189745916&wfxingr=spider&for=pc


3、AOF(Append Only File)

一句话:将写命令记录。形成文件。

全量备份总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

如何触发

  • always:同步持久化 每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好
  • 每秒同步everysec:异步操作,每秒记录 如果一秒内宕机,有数据丢失
  • 不同no:从不同步

具体同上参考

Redis的RDB和AOF详解 通过本博客,我们详细了解了Redis中RDB和AOF两种持久化机制的原理、配置和应用场景。根据实际需求,可以选择合适的持久化方式或者将它们结合使用,以保障Redis数据的安全性和可靠性。如果有任何问题或建议,请随时与我们分享。下一篇博客将继续介绍更多有关Redis的知识,敬请期待! 阅读详情

相关推荐

【大厂面试】Redis 持久化AOF、RDB概念总结

本篇文章是对之前文章的一些总结 【大厂面试】面试官都爱问的 Redis 持久化 (RDB) 【大厂面试】面试官都爱问的 Redis 持久化 (AOF) RDB 持久化方式能够在指定的时间间隔能对你的数据进行快照存储 AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以 redis 协议追加保存每次写的操作到文件末尾,redis 还能对 AOF 文件进行后台重写,使得 AOF 文件的体积不至于过大 只做缓存:如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式 同时开启两种持久化方式 在这种情况下,当 redis 重启

【面试】Redis持久化RDB和AOF(原理,配置以及两者优缺点)

一:持久化: redis时内存型的nosql数据库,项目数据时非常重要的,所以数据安全必须考虑,而redis支持将数据持久化到磁盘。redis默认是有持久化的,当我们存储一些数据时,会出现一个dump.rdb文件,这个文件就是用来持久化,保证我们的数据不会丢失。 redis一共有两种持久化方法,一个时RDB,一个时AOF 二:RDB(Snapshotting) 原理:首先redis是一个单线程,主...

weixin_43156133的博客 1473

Python+Appium实现泛微OA自动打卡:5分钟搭建移动端自动化脚本

移动端自动化测试是软件测试与办公自动化领域的重要技术方向,其核心原理是通过程序模拟用户对手机应用界面的操作,实现重复性任务的自动执行。Appium作为主流的开源移动端自动化框架,基于WebDriver协议,支持跨平台且无需修改被测应用,为自动化脚本开发提供了标准化接口。在工程实践中,结合Python简洁的语法和丰富的生态,可以快速构建稳定可靠的自动化解决方案。这一技术组合的价值在于能够高效处理“重复性、低价值、高频率”的日常操作,例如考勤打卡、数据填报等办公场景,显著提升工作效率。本文以泛微OA Emobi

weixin_28836875的博客 390

Redis两种持久化机制RDB和AOF详解(面试常问,工作常用)

redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。下面针对这两种方式来介绍一下。由浅入深。

qq_59125846的博客 687

cMake编译 VS2026+opencv4.12.0+opencv_contrib-4.12.0

本文提供了OpenCV 4.12.0集成CUDA、cuDNN和ONNX Runtime的详细编译指南。主要步骤包括:准备Visual Studio 2026、CMake 4.2.0、CUDA 12.6和cuDNN 9.16.0;设置无空格和中文的路径结构;配置关键CMake变量(如开启CUDA支持、指定路径等);以及最终的编译安装过程。注意事项包括:版本一致性检查、cuDNN文件复制、国内用户需手动获取.cache文件等。文章还提供了常见问题解决方案,如通过设置CUDA_NVCC_FLAGS参数解决VS版本

weixin_46624734的博客 1384

开源AI数字人DUIX:从零构建你的智能交互助手

本文详细介绍了如何利用开源AI数字人DUIX从零构建智能交互助手。文章阐述了DUIX作为开源项目的核心优势,包括低成本启动、低网络依赖和高度可定制性,并提供了从开发环境搭建、核心模块(AI模型、语音、形象)配置到个性化业务逻辑开发与最终部署的完整实践指南,帮助开发者快速掌握构建专属AI数字人的全流程。

weixin_29051811的博客 504

redis高级(面试题一)

redis主从集群结构如图:在该图中有一个redis集群,集群中有一个master节点,两个slave节点,当我们通过redis的java客户端访问主从集群是,应该做好路由。如果是写操作,应该访问master节点,master会自动将数据同步给两个slave节点如果是读操作,建议访问各个slave节点,从而分担并发压力redis提供了哨兵(sentilel)机制来监控主从集群状态,确保集群的高可用性。Sentinel的三个作用是什么?集群监控故障恢复状态通知。

m0_65100923的博客 2549

Oracle EBS R12.2 安装 -- Step by Step

Oracle EBS R12.2 安装 -- Step by Step

Albert Tan DBA之路 1512

Redis 面试题——持久化

本文介绍了 Redis 持久化的相关面试题。

代码星辰的博客 1119

突发E层(Es层):短波通信中的“意外惊喜”与“隐形杀手”全解析

本文深入解析了突发E层(Es层)在短波通信中的双重作用,既可能带来超远距离通信的“意外惊喜”,也可能成为通信链路的“隐形杀手”。通过分析Es层的形成机制、时空分布规律及实战应用技巧,帮助通信爱好者与专业人员更好地利用或应对这一电离层现象,提升短波通信的可靠性与效率。

weixin_30443813的博客 824

VINS技术路线与代码详解

VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。 VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 参考文档:1.VINS-Mono A R...

wangshuailpp的博客 7万+

详解Redis中两种持久化机制RDB和AOF(面试常问,工作常用)

详解Redis中两种持久化机制RDB和AOF(面试常问,工作常用) redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。 在这里假设你已经了解了redis的基础语法,某字母网站都有很好的教程,可以去看。基本使用的文章就不...

郝啊的博客 826

JavaFX Stage

JavaFXStagejavafx.stage.Stage表示 JavaFX 桌面应用程序中的窗口。在 JavaFX 内部,Stage您可以插入一个 JavaFX Scene,它表示在窗口内显示的内容 - 在Stage.当 JavaFX 应用程序启动时,它会创建一个根Stage对象,该对象将传递给 start(Stage primaryStage)JavaFX 应用程序的根类的方法。此Stage 对象代表 JavaFX 应用程序的主窗口。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 508

redis 通过aof日志恢复_Redis两种持久化机制RDB和AOF详解(面试常问,工作常用)...

redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。在这里假设你已经了解了redis的基础语法,某字母网站都有很好的教程,可以去看。基本使用的文章就不写了,都是一些常用的命令。下面针对这两种方式来介绍一下。由浅入深。一、...

weixin_34080081的博客 119

[DevExpress]GridControl拖拽行记录排序

DevExpress的GridControl拖拽行记录排序需求效果代码 需求 现在用户对按钮点击排序不满意了, 希望拖拽排序。 重载GridControl控件,对MouseMove、MouseDown、MouseUp事件修改一下。 效果 代码 using System; using System.Drawing; using System.Windows.Forms; using xiaoid.forms; using System.Data; using System.Collections.Gener

德仔 1561

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Redis持久化机制详解:面试必备知识点

Redis提供了RDB、AOF和混合持久化三种数据持久化机制。RDB通过定时快照实现,文件紧凑但可能丢失数据;AOF记录所有写操作,安全性高但文件较大;混合持久化结合两者优点。面试常考如何选择持久化策略:数据安全优先选AOF或混合,性能优先选RDB。生产环境推荐配置混合持久化或同时开启RDB+AOF,并合理设置同步策略和重写规则。

2301_79099460的博客 568

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

一篇文章彻底理解Redis持久化:RDB和AOF

理解和掌握Redis的持久机制,对于Redis的日常开发和运维都有很大帮助,也是在大厂面试经常被问到的知识点。

万猫学社 6万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【面试常问】Redis的持久化机制是什么?各自的优缺点?

Redis在我们日常开发中是必不可少的,但是有可能会造成数据的丢失,因此就有了持久化机制,而 Redis的持久化机制也是面试中的高频问题,决定整理一下;如有错误还请个位指正!

Willing卡卡的博客 1万+

Java面试-Redis 持久化机制:RDB 与 AOF

本文深入剖析Redis两大持久化机制——RDB与AOF,从技术原理到生产实践。RDB通过全量快照实现高效备份,利用CoW技术保证off主线程操作;AOF通过增量管理局志保障数据安全,支持多种fsync策略。文章对比显示:RDB恢复快但可能丢数据ft数据,AOF更安全但恢复较耗时间。文章推荐混合模式(RDB+AOF)作为最佳实践,并附配置模板与故障演练方案,帮助开发者构建高可靠的Redis数据存储方案。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+
上一篇: Java中final、finally和finalize的区别
下一篇: 工厂模式和抽象工厂模式
Longtermevolution
博客等级 码龄9年 113粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值