Redis 持久化机制

Redis 持久化机制

Redis 提供 两种持久化方案 来保证数据安全:

  1. RDB(Redis Database Snapshot)快照存储,定期保存整个数据到磁盘。
  2. AOF(Append Only File)日志存储,记录每个写操作,支持数据恢复。

此外,还可以 混合使用 RDB 和 AOF,兼顾性能与安全性。


1. RDB(快照持久化)

📌 机制

  • 在指定时间间隔 内,将 内存数据二进制快照 形式保存到磁盘。
  • Redis 崩溃重启后,可以 加载 RDB 文件恢复数据
  • RDB 文件 默认存储路径
    /var/lib/redis/dump.rdb
    

📌 配置 RDB

redis.conf 中:

save 900 1    # 900秒(15分钟)内有1次写操作,触发快照
save 300 10   # 300秒(5分钟)内有10次写操作,触发快照
save 60 10000 # 60秒(1分钟)内有10000次写操作,触发快照

🚀 优化建议

  • 数据不频繁变更 → 适合使用 RDB
  • 定期备份,减少数据丢失

📌 RDB 手动触发

命令作用
SAVE同步保存(阻塞 Redis,影响性能)
BGSAVE异步保存(fork 子进程执行,不影响主线程)

📌 RDB 恢复

  • Redis 重启时,会自动加载 dump.rdb 恢复数据
  • 手动恢复
    cp dump.rdb /var/lib/redis/
    redis-server
    

✅ RDB 优缺点

优势劣势
适合全量备份可能丢失最近数据(最后一次快照后)
恢复速度快BGSAVE 可能造成性能问题(fork 进程占用 CPU 和内存)
体积小,适合冷备份不适用于高并发写入的场景

2. AOF(Append Only File,日志持久化)

📌 机制

  • 记录每个写操作日志文件(以命令形式)。
  • 重启 Redis 时,按顺序重放日志 以恢复数据。
  • 默认 AOF 关闭,可手动开启。

📌 配置 AOF

redis.conf

appendonly yes         # 开启 AOF 持久化
appendfilename "appendonly.aof"  # AOF 文件名

📌 AOF 三种刷盘策略

配置项刷盘方式安全性性能
appendfsync always每次写入都刷盘最安全,不会丢数据最慢,影响性能
appendfsync everysec每秒刷盘一次(默认)一般丢失 1 秒数据折中,适合大部分场景
appendfsync no由操作系统决定何时刷盘可能丢失数据最快,但不安全

📌 AOF 过大时,如何压缩?

Redis 会自动重写 AOF(AOF Rewrite)

  • 合并重复操作(减少 AOF 文件大小)
  • 执行
    BGREWRITEAOF
    

📌 AOF 恢复

重启 Redis 时,会 按顺序执行 AOF,重建数据:

redis-server --appendonly yes

✅ AOF 优缺点

优势劣势
数据安全,丢失数据最少文件比 RDB 大,影响恢复速度
支持日志回放,精确恢复数据写入频繁,可能影响性能
可以手动修复(删除最后几行)比 RDB 慢,需要定期重写 AOF

3. RDB vs AOF

特性RDB(快照)AOF(日志)
数据安全可能丢失最近的数据几乎不丢失数据
磁盘占用文件小文件大(不断追加)
恢复速度(直接加载快照)(逐条执行命令)
写入性能更快(定期保存)较慢(每次写操作都记录)
适用场景适合冷备(定期备份)适合高数据安全需求

🚀 如何选择?

需求推荐方案
高性能,数据丢失可接受RDB
数据必须 99.99% 可靠AOF
希望既安全又高效混合使用 RDB + AOF

4. 混合使用 RDB + AOF

Redis 6.0+ 提供 AOF + RDB 混合模式(Hybrid AOF)。

  • 启动时优先加载 RDB,提升恢复速度
  • 增量数据使用 AOF 记录,保证数据安全

📌 开启混合持久化

redis.conf

aof-use-rdb-preamble yes

📌 优点

  • 恢复更快(减少 AOF 重放时间)
  • 数据安全性更高
  • 兼顾 RDB 和 AOF 的优点

5. 总结

🎯 哪种持久化方式适合你?

方案适用场景
只用 RDB适用于数据不频繁变化的应用,如缓存、定期备份
只用 AOF适用于高可靠性要求的业务,如金融、订单系统
RDB + AOF(推荐)适用于大多数业务场景,保证性能 + 数据安全

🛠 最佳实践

使用 RDB 定期备份(减少磁盘 IO)
AOF 设置 everysec,减少数据丢失风险
开启 aof-use-rdb-preamble(混合模式),提高恢复速度
定期执行 BGREWRITEAOF,避免 AOF 过大

🚀 结论

  • 如果 Redis 主要用作缓存用 RDB
  • 如果 Redis 需要存储重要数据用 AOF
  • 如果想要兼顾性能和安全用 RDB + AOF 混合模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36657.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开原宝藏】30天学会CSS - DAY1 第一课

下面提供一个由浅入深、按步骤拆解的示例教程,让你能从零开始,逐步理解并实现带有旋转及悬停动画的社交图标效果。为了更简单明了,以下示例仅创建四个图标(Facebook、Twitter、Google、LinkedIn),并在每一步…

【pytest框架源码分析五】pytest插件的注册流程

前文介绍到pytest整体是运用插件来实现其运行流程的。这里仔细介绍下具体过程。 首先进入main方法 def main(args: list[str] | os.PathLike[str] | None None,plugins: Sequence[str | _PluggyPlugin] | None None, ) -> int | ExitCode:"""Perform an i…

谷歌or-tools开源库入门

1.命令行编译程序 这里要说明下,直接用qt或者VS2022打开cmake工程,编译没有成功。所以,老老实实的按照官方教程来,使用命令行编译。 (1)准备 1)安装cmake,版本3.18以上&#xff0…

Python实现WYY音乐下载

一、需求背景 WYY音乐作为国内主流音乐平台,其歌曲资源丰富但下载接口存在多重加密保护。本文将通过Python结合JS逆向技术,解析其核心加密逻辑,实现免费歌曲的下载功能。 二、技术难点分析 1. 接口加密机制 通过抓包分析可知,网易云核心接口使用两次加密: 第一次:获取…

拥抱健康生活,开启养生之旅

在快节奏的现代生活中,健康养生愈发重要,它不仅能让我们保持良好状态,更是享受美好生活的基石。​ 饮食养生是健康的关键。我们应秉持均衡原则,一日三餐合理搭配。多摄入新鲜蔬果,它们富含维生素、矿物质与膳食纤维&a…

《Waf 火绒终端防护绕过实战:系统程序副本+Certutil木马下载技术详解》

目录 绕过火绒终端安全软件的详细方法 方法一:利用系统程序副本绕过命令监控 方法二:结合certutil.exe副本下载并执行上线木马 注意事项 总结 实际案例解决方案 前提条件 详细操作步骤 1. 攻击主机(VPS)上的准备工作 2.…

机器学习概要

文章目录 一、什么是机器学习 二、机器学习的种类 1. 有监督学习 2. 无监督学习 3.强化学习 三、机器学习的应用 四、机器学习的步骤 1. 数据的重要性 2. 数据和学习的种类 3. 可视化 一、什么是机器学习 机器学习指的是计算机根据给定的问题、课题或环境进行学习&a…

C# Winform 实现换肤,并自定义皮肤功能

具体实现原理详见 SkinHelp.cs类,实现了对原有控件的重绘,详见源码 public abstract class SkinHelp{private static SkinColor _currentSkinColor SkinColor.Default;private static BackgroundStripe _currentStripe BackgroundStripe.Default;priva…

基于FPGA的3U机箱模拟量高速采样板ADI板卡,应用于轨道交通/电力储能等

板卡简介: 本板为模拟量高速采样板(ADI),主要用于电机转速和相电流检测,以实现电机闭环控制。 性能规格: 电源:DC5V,DC3.3V,DC15V,DC24V FPGA:…

python爬虫概述

0x00 python爬虫概述 以豆瓣的选电影模块为例,当查看源代码搜索猫猫的奇幻漂流瓶是搜不到的 这时服务器的工作方式应该是这样的 客户端浏览器第一次访问其实服务器端是返回的一个框架(html代码) 当客户端浏览器第二次通过脚本等方式进行访问时服务器端才返回的数据…

win10 如何用我的笔记本 接网线 远程控制 台式机

1.查看笔记本ip,台式机ip。确保在同一网段 可以ping通 1.1 ip在同一网段,但是ping不通 1.解决:把双方防火墙关闭 2.解决:当前网口,先禁用再启用 以上两台电脑就可以ping通了 2.设置双方电脑 启动远程控制 此电脑-》…

给管理商场消防安全搭建消防安全培训小程序全过程

一、需求沟通 “我是管理商场消防安全的嘛,做这个的作用呢,1是商场的所有商户员工可以看平面或者视频随时自学, 2是我们定期培训必修课程、考试,这个需要留存他们的手签字的签到表确认我们讲给他们听了(免责很重要&am…

可视化图解算法:链表中倒数(最后)k个结点

1. 题目 描述 输入一个长度为 n 的链表,设链表中的元素的值为ai ,返回该链表中倒数第k个节点。 如果该链表长度小于k,请返回一个长度为 0 的链表。 数据范围:0≤n≤105,0 ≤ai≤109,0 ≤k≤109 要求&am…

Quartz知识点总结

简单说明 简单的定时任务使用Timer或者ScheduledExecutorService quartz支持复杂的定时执行功能。支持ram存储(内存存储)和持久化存储。quartz有分布式和集群能力 简单使用 获取任务调度器Schedule。任务调度器可以管理任务。创建任务实例。使用JobB…

C语言每日一练——day_12(最后一天)

引言 针对初学者,每日练习几个题,快速上手C语言。第十二天。(最后一天,完结散花啦) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ&#xff0…

【宇宙回响】从Canvas到MySQL:飞机大战的全栈交响曲【附演示视频与源码】

🌟 这是星际大战系列的第三篇送福利文章,感谢一路以来支持和关注这个项目的每一位朋友! 💡 文章力求严谨,但难免有疏漏之处,欢迎各位朋友指出,让我们一起在交流中进步。 🎁 项目代码…

数据结构知识点1

目录 一、时间复杂度和空间复杂度 1.1时间复杂度: 1.2空间复杂度: 二、装箱和拆箱 三、泛型 3.1泛型类的使用: 3.2泛型的上界: 3.3泛型方法: 一、时间复杂度和空间复杂度 1.1时间复杂度: 时间复杂…

华为ipd流程华为流程体系管理华为数字化转型流程数字化管理解决方案介绍81页精品PPT

华为流程体系最佳实践主要包括构建完善的流程框架,明确各层级流程要素与职责,梳理涵盖研发、采购、营销、服务、资产管理等多领域的流程,通过梳理业务场景和核心能力搭建差异化流程框架,采用自上而下与自下而上相结合的建模方法&a…

在大数据开发中ETL是指什么?

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字经济时代,数据已成为企业最核心的资产。然而,分散在业务系统、日志文件…

Collection系列集合的小结+集合并发修改异常问题

一、Collection系列集合的小结 二、补充知识:集合的并发修改异常问题 三、Collection的其他相关知识 1. 前置知识:可变参数 2. 集合的工具类:Collections 3. 综合案例:斗地主游戏 (1)创建Card类 public c…