Redis持久化机制详解

article/2025/6/18 3:09:56

 

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用微信支付,扫码加群。由于维护成本问题得不到解决,可能将停止线上维护。

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!

2

Redis提供两种主要的持久化方式,确保数据在服务器重启后能够恢复。理解这些机制对生产环境的数据安全至关重要。

一、RDB (Redis Database)

1. 核心原理

  • 全量快照:在特定时间点将内存中的数据完整保存到磁盘

  • 二进制压缩存储:紧凑的单文件格式,默认文件名为dump.rdb

2. 触发方式

# redis.conf配置示例
save 900 1      # 900秒(15分钟)内至少1个key变化
save 300 10     # 300秒(5分钟)内至少10个key变化
save 60 10000   # 60秒内至少10000个key变化

手动触发命令

SAVE       # 同步保存,阻塞主线程
BGSAVE     # 后台异步保存(推荐)

3. 工作流程

4. 优缺点

优势

  • 文件紧凑,恢复速度快

  • 最大化Redis性能(保存时父进程不执行I/O)

  • 适合灾难恢复

劣势

  • 可能丢失最后一次保存后的数据

  • 大数据集时fork可能耗时(尤其在虚拟机上)

二、AOF (Append Only File)

1. 核心原理

  • 日志追加:记录所有写操作命令

  • 重写机制:定期压缩日志文件大小

2. 配置选项

appendonly yes              # 启用AOF
appendfilename "appendonly.aof"
appendfsync everysec        # 同步策略:# always: 每个命令同步# everysec: 每秒同步(推荐)# no: 由操作系统决定auto-aof-rewrite-percentage 100  # 比上次重写后增长100%时触发
auto-aof-rewrite-min-size 64mb   # AOF文件至少64MB才触发重写

3. AOF重写过程

4. 优缺点

优势

  • 更高数据安全性(最多丢失1秒数据)

  • 可读性强的日志格式

  • 后台重写不影响服务

劣势

  • 文件通常比RDB大

  • 恢复速度较慢

  • AOF fsync可能影响性能

三、混合持久化(Redis 4.0+)

1. 原理

aof-use-rdb-preamble yes  # 开启混合模式

文件结构

[RDB格式的前导数据]
[AOF格式的增量命令]

2. 工作流程

  1. 执行BGSAVE生成RDB快照

  2. 后续命令以AOF格式追加

  3. 重写时生成新的RDB前导+增量AOF

3. 优势

  • 快速加载RDB部分

  • 保证数据完整性的AOF部分

  • 结合两者优点

四、生产环境配置建议

1. 数据安全优先

appendonly yes
appendfsync everysec
aof-use-rdb-preamble yes
save 300 100  # 保留基础RDB备份

2. 性能优先

appendonly no
save 900 1
save 300 10

3. 灾难恢复方案

  1. 定期将RDB文件备份到异地

    crontab -e
    # 每天备份
    0 2 * * * cp /var/lib/redis/dump.rdb /backup/redis/dump-$(date +\%F).rdb

  2. 启用AOF作为第二保障

  3. 监控持久化状态:

    redis-cli info persistence

五、故障处理技巧

1. AOF文件损坏修复

redis-check-aof --fix appendonly.aof

2. RDB文件检查

redis-check-rdb dump.rdb

3. 禁用持久化的紧急模式

redis-server --save "" --appendonly no

六、性能优化参数

# 提高BGSAVE性能
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes# 优化AOF重写
aof-rewrite-incremental-fsync yes
no-appendfsync-on-rewrite yes

七、监控关键指标

  1. RDB相关

    • rdb_last_save_time:上次成功保存时间戳

    • rdb_changes_since_last_save:上次保存后的变更数

  2. AOF相关

    • aof_current_size:当前AOF文件大小

    • aof_buffer_length:AOF缓冲区大小

    • aof_rewrite_in_progress:是否正在重写

  3. 持久化状态

    • loading:是否正在加载持久化文件

    • rdb_last_bgsave_status:上次BGSAVE状态

通过合理配置和监控这些持久化机制,可以在性能和数据安全性之间取得平衡。

3


http://www.hkcw.cn/article/KMvlSBMJYg.shtml

相关文章

Mistral 推出全新开发者平台Agents API

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

融智学三阶进化模型的全要素可视化解析

摘要:本文提出一种三阶进化模型,通过可视化图表与数学公式阐述人类智慧与人工智能的融合路径。研究构建Mermaid流程图展示"人类智力→形式化智慧→通用AI→超级AI→人机协同"的演进过程,并引入道函数$f_{\mathrm{Tao}}(\mathrm{Ob}…

颠覆传统!单样本熵最小化如何重塑大语言模型训练范式?

颠覆传统!单样本熵最小化如何重塑大语言模型训练范式? 大语言模型(LLM)的训练往往依赖大量标注数据与复杂奖励设计,但最新研究发现,仅用1条无标注数据和10步优化的熵最小化(EM)方法…

simulink mask、sfunction和tlc的联动、接口

这里全部是讲的level2 sfunction(用m语言编写),基于matlab 2020a。 1.mask的参数操作 1)mask通过set_param和get_param这2个函数接口对mask里面定义的Parameters&Dialog的参数的大部分属性进行读写,一般是Value值…

【数据结构】图的存储(邻接矩阵与邻接表)

图的存储结构 因为图中既有节点,又有边(节点与节点之间的关系),因此,在图的存储中,只需要保存:节点和边关系即可。 节点保存比较简单,只需要一段连续空间即可,那边关系该怎么保存呢&#xff1…

C++修炼:unordered_map和unordered_set的使用和封装

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞&#xff0c;关注&am…

Centos环境下安装/重装MySQL完整教程

目录 一、卸载残留的MySQL环境&#xff1a; 二、安装MySQL&#xff1a; 1、下载MySQL官方的yum源&#xff1a; 2、更新系统yum源&#xff1a; 3、确保系统中有了对应的MySQL安装包&#xff1a; 4、安装MySQL服务&#xff1a; 5、密钥问题安装失败解决方法&#xff1a; …

【机器学习基础】机器学习入门核心算法:决策树(Decision Tree)

机器学习入门核心算法&#xff1a;决策树&#xff08;Decision Tree&#xff09; 一、算法逻辑1.1 基本概念1.2 算法流程 二、算法原理与数学推导2.1 特征选择指标信息熵&#xff08;ID3算法&#xff09;信息增益&#xff08;Information Gain&#xff09;信息增益率&#xff0…

基于晶体塑性有限元(CPFEM)的钛合金圆棒拉伸过程模拟

作者&#xff1a;辞殇 关键词&#xff1a;CPFEM&#xff1b;钛合金&#xff1b;单轴拉伸&#xff1b;织构极图&#xff1b;孪晶 晶体塑性有限元是一种结合了晶体塑性理论和有限元方法的数值模拟技术‌。这种方法考虑了晶体材料的各向异性、滑移系统的开动和相互作用、以及变形…

开源是什么?我们为什么要开源?

本片为故事类文章推荐听音频哦 软件自由运动的背景 梦开始的地方 20世纪70年代&#xff0c;软件行业处于早期发展阶段&#xff0c;软件通常与硬件捆绑销售&#xff0c;用户对软件的使用、修改和分发权利非常有限。随着计算机技术的发展和互联网的普及&#xff0c;越来越多的开…

帕金森带来的生活困境

当这种健康状况出现&#xff0c;行动不再自如成为最明显的改变。日常行走时&#xff0c;步伐会逐渐变小、变慢&#xff0c;甚至会出现 “小碎步” 往前冲&#xff0c;难以停下&#xff0c;简单的起身、转身都可能变得艰难。手部也会不受控制地颤抖&#xff0c;拿水杯、系纽扣这…

第3期:PCB设计教程:自动布线与导出制版文件详解

第3期&#xff1a;PCB设计教程&#xff1a;自动布线与导出制版文件详解 一、前言 本篇教程主要聚焦于PCB设计中的自动布线功能及文件导出步骤。通过本教程&#xff0c;您将学习如何&#xff1a; 使用自动布线工具高效完成线路连接处理自动布线失败的情况进行DRC检查确保设计…

NACOS 动态配置

1.引入Nacos 配置中心依赖 <!-- nacso 配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency> 2.在application.properties 配置…

【清晰教程】查看和修改Git配置情况

目录 查看安装版本 查看特定配置 查看全局配置 查看本地仓库配置 设置或修改配置 查看安装版本 打开命令行工具&#xff0c;通过version命令检查Git版本号。 git --version 如果显示出 Git 的版本号&#xff0c;说明 Git 已经成功安装。 查看特定配置 如果想要查看特定…

C语言 — 动态内存管理

目录 1.malloc和free函数1.1 malloc函数1.2 free函数1.3 malloc函数的使用 2.calloc函数2.1 calloc函数2.2 calloc函数的使用 3.realloc函数3.1 realloc函数3.2 realloc函数的使用 4.动态内存管理笔试题4.1 笔试题&#xff08;1&#xff09;4.2 笔试题&#xff08;2&#xff09…

动态规划算法

简称 DP&#xff0c;是一种求解多阶段决策过程最优化问题的方法。在动态规划中&#xff0c;通过把原问题分解为相对简单的子问题&#xff0c;先求解子问题&#xff0c;再由子问题的解而得到原问题的解。 一、概念 动态规划最早由理查德 贝尔曼于 1957 年在其著作「动态规划&…

Qt -使用OpenCV得到SDF

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【暂无】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 目录 cv::MatdistanceTransform获得SDF 本文的目标&#xff0c; 是简单学习并使用OpenCV的相关函数&#xff0c; 并获得QImage的SDF(Signed Distance Field 有向距离场) 至…

【小米拥抱AI】小米开源 MiMo-7B-RL-0530

更新日志 [2025.05.30] 在强化学习训练过程中&#xff0c;通过持续扩大训练窗口尺寸&#xff08;从32K提升至48K&#xff09;&#xff0c;MiMo-7B-RL-0530模型在AIME24基准测试上的表现持续提升&#xff0c;最终超越DeepSeek R1模型的性能水平。 BenchmarkMiMo-7B-RLMiMo-7B-…

俄布良斯克州桥梁坍塌致列车脱轨事故造成3死28伤

△图片来源:莫斯科交通检察院总台记者当地时间6月1日获悉,据俄罗斯紧急情况部初步统计,布良斯克州桥梁坍塌致火车脱轨事故共造成31人伤亡,其中3人不幸遇难,28人已送往医疗机构救治。此前据俄罗斯BAZA网站报道,事件造成4人死亡,至少44人受伤。俄紧急情况部称,救援人员正…

JDK17 与JDK8 共同存在一个电脑上

官网下载JDK17 官网链接 &#xff1a;https://www.oracle.com/java/technologies/downloads/#java17-windows 下载这个 安装 环境变量设置 因为之前设置过JDK 8这里为了使 两者共存&#xff0c;采用设置变量方式来实现具体操作如下 1、进入高级系统环境设置 1.1先建一个关…