Redis的持久化机制RDB和AOF有什么区别
mhr18 2025-05-23 18:37 33 浏览 0 评论
Redis 的持久化机制 RDB(Redis DataBase)和 AOF(Append Only File)有以下区别:
原理
- RDB:在指定时间间隔内对内存中的数据做一次快照,生成一个存储整个数据库状态的二进制文件(默认文件名 dump.rdb ) ,保存的是某个时间点的数据。
- AOF:记录服务器执行的所有写操作命令,以追加的方式写入到一个日志文件中。在服务器重启时,通过重新执行这些命令来还原数据集。
文件特性
- RDB:是紧凑的二进制文件,体积相对较小 。
- AOF:是文本格式文件,内容是 Redis 协议格式的写操作命令,便于人工读取和分析,文件体积通常比 RDB 文件大 。
触发时机
- RDB:自动触发:可在 redis.conf 中通过 save 指令配置,如 save 900 1 表示每 900 秒至少有 1 次写操作时触发 RDB 快照;save 300 10 即每 300 秒至少有 10 次写操作时触发等 。手动触发:执行 BGSAVE (后台异步执行)或 SAVE (阻塞 Redis 直到保存完成)命令 。
- AOF:通过配置 appendfsync 参数控制写入频率,有三个取值:always:每个写操作命令执行完,都将数据同步写入 AOF 文件,数据安全性最高,但性能开销大 。everysec:每秒将数据同步写入 AOF 文件一次,是性能和数据安全性较为平衡的常用配置,最多丢失 1 秒数据 。no:完全依赖操作系统控制同步时间,性能最好,但可能丢失较多数据 。
数据完整性
- RDB:无法做到实时持久化,在两次快照之间如果发生宕机等故障,会丢失最近一次快照之后的数据 。
- AOF:根据 appendfsync 配置不同,数据丢失情况不同。采用 always 时基本不丢数据;everysec 最多丢 1 秒数据;no 可能丢失较多数据。总体来说,AOF 数据完整性更好。
恢复速度
- RDB:恢复时只需加载一个二进制文件,在恢复大数据集时速度比 AOF 快很多 。
- AOF:恢复时需重新执行 AOF 文件中的所有写操作命令,文件较大时恢复速度较慢 。
性能影响
- RDB:生成 RDB 文件时需 fork 出子进程来处理保存工作,父进程不进行磁盘 I/O 操作。但在数据集庞大时,fork 操作可能耗时,使服务器在短时间内停止处理客户端请求 。
- AOF:写操作频繁时,由于要不断追加写命令到文件,可能影响性能,尤其在使用 always 策略时 。不过,AOF 重写(rewrite)可优化文件大小,减少性能影响,但重写过程也会消耗资源 。
实际应用中,若追求快速恢复和备份,对数据实时性要求不高,可侧重 RDB;若更看重数据完整性、安全性,能接受稍慢恢复速度和较大文件占用空间,AOF 更合适。也可两种机制结合使用,取长补短 。
相关推荐
- Dubai's AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East's Silicon Gateway
-
AI-generatedimageAsianFin--Dubaiisrapidlytransformingitselffromadesertoilhubintoaglob...
- OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs
-
TMTPOST--OpenAIisescalatingthepricewarinlargelanguagemodel(LLM)whileseekingpartnershi...
- 黄仁勋说AI Agent才是未来!但究竟有些啥影响?
-
,抓住风口(iOS用户请用电脑端打开小程序)本期要点:详解2025年大热点你好,我是王煜全,这里是王煜全要闻评论。最近,有个词被各个科技大佬反复提及——AIAgent,智能体。黄仁勋在CES展的发布...
- 商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署
-
1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于第5部分2、mini商城项目详细文档及代码见CSDN:https://blog.csdn.net/Eclipse_...
- Python+Appium环境搭建与自动化教程
-
以下是保姆级教程,手把手教你搭建Python+Appium环境并实现简单的APP自动化测试:一、环境搭建(Windows系统)1.安装Python访问Python官网下载最新版(建议...
- 零配置入门:用VSCode写Java代码的正确姿
-
一、环境准备:安装JDK,让电脑“听懂”Java目标:安装Java开发工具包(JDK),配置环境变量下载JDKJava程序需要JDK(JavaDevelopmentKit)才能运行和编译。以下是两...
- Mycat的搭建以及配置与启动(mycat2)
-
1、首先开启服务器相关端口firewall-cmd--permanent--add-port=9066/tcpfirewall-cmd--permanent--add-port=80...
- kubernetes 部署mysql应用(k8s mysql部署)
-
这边仅用于测试环境,一般生产环境mysql不建议使用容器部署。这里假设安装mysql版本为mysql8.0.33一、创建MySQL配置(ConfigMap)#mysql-config.yaml...
- Spring Data Jpa 介绍和详细入门案例搭建
-
1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...
- 量子点格棋上线!“天衍”邀您执子入局
-
你是否能在策略上战胜量子智能?这不仅是一场博弈更是一次量子智力的较量——量子点格棋正式上线!试试你能否赢下这场量子智局!游戏玩法详解一笔一画间的策略博弈游戏目标:封闭格子、争夺领地点格棋的基本目标是利...
- 美国将与阿联酋合作建立海外最大的人工智能数据中心
-
当地时间5月15日,美国白宫宣布与阿联酋合作建立人工智能数据中心园区,据称这是美国以外最大的人工智能园区。阿布扎比政府支持的阿联酋公司G42及多家美国公司将在阿布扎比合作建造容量为5GW的数据中心,占...
- 盘后股价大涨近8%!甲骨文的业绩及指引超预期?
-
近期,美股的AI概念股迎来了一波上升行情,微软(MSFT.US)频创新高,英伟达(NVDA.US)、台积电(TSM.US)、博通(AVGO.US)、甲骨文(ORCL.US)等多股亦出现显著上涨。而从基...
- 甲骨文预计新财年云基础设施营收将涨超70%,盘后一度涨8% | 财报见闻
-
甲骨文(Oracle)周三盘后公布财报显示,该公司第四财季业绩超预期,虽然云基建略微逊于预期,但管理层预计2026财年云基础设施营收预计将增长超过70%,同时资本支出继上年猛增三倍后,新财年将继续增至...
- Springboot数据访问(整合MongoDB)
-
SpringBoot整合MongoDB基本概念MongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和...
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
-
概述 Jmeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的。到目前为止,它的最新版本是5.3,其测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JM...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Dubai's AI Boom Lures Global Tech as Emirate Reinvents Itself as Middle East's Silicon Gateway
- OpenAI Releases o3-pro, Cuts o3 Prices by 80% as Deal with Google Cloud Reported to Make for Compute Needs
- 黄仁勋说AI Agent才是未来!但究竟有些啥影响?
- 商城微服务项目组件搭建(五)——Kafka、Tomcat等安装部署
- Python+Appium环境搭建与自动化教程
- 零配置入门:用VSCode写Java代码的正确姿
- Mycat的搭建以及配置与启动(mycat2)
- kubernetes 部署mysql应用(k8s mysql部署)
- Spring Data Jpa 介绍和详细入门案例搭建
- 量子点格棋上线!“天衍”邀您执子入局
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)