Redis存数据就像存钱:RDB定期存款 vs AOF实时记账


Redis持久化

    • ◆ 核心概念
      • 1. ◆ 持久化全景图
      • 2. ◆ 生产环境黄金法则
    • ◆ RDB深度优化
      • 1. ◆ 生产配置精要
      • 2. ◆ 高级触发场景
      • 3. ◆ 故障应急方案
    • ◆ AOF深度解析
      • 1. ◆ 7.0版本革命性改进
      • 2. ◆ 同步策略深度测试
      • 3. ◆ 重写过程优化
    • ◆ 混合持久化实战
      • 1. ◆ 配置示例
      • 2. ◆ 数据恢复沙盘演练
    • ◆ 监控与排错
      • 1. ◆ 关键指标监控
      • 2. ◆ 常见故障树
    • ◆ 终极对决:RDB vs AOF
      • 1. ◆ 八维度对比
      • 2. ◆ 场景化选择矩阵
    • ◆ 专家级调优建议
      • 1. ◆ 内存优化组合拳
      • 2. ◆ 云环境特别建议


◆ 核心概念

1. ◆ 持久化全景图

15% 5% 75% 5% Redis数据落地方式占比 RDB Only AOF Only RDB+AOF混合 无持久化

版本演进
► Redis 4.0 引入混合持久化
► Redis 7.0 AOF多文件结构革新

2. ◆ 生产环境黄金法则

数据敏感度
必须开启AOF
RDB+AOF混合
仅RDB
always策略+SSD存储
everysec策略+定时RDB

◆ RDB深度优化

1. ◆ 生产配置精要

# redis.conf优化项
save 3600 1001小时100次改动(替代默认设置)
stop-writes-on-bgsave-error no  ► 避免写入中断
rdb-save-incremental-fsync yes ► 增量式同步

内存管理技巧
► 预留50%内存应对Fork
► 使用大页内存提升性能

2. ◆ 高级触发场景

主节点 从节点 SYNC请求 触发bgsave 发送RDB文件 主节点 从节点

主从复制全量同步
► RDB文件体积超过1GB时建议调大repl-backlog-size
► 万兆网络环境下优先使用diskless复制

3. ◆ 故障应急方案

文件损坏
版本不匹配
RDB恢复失败
检查文件完整性
从备份恢复
升级Redis版本
内存不足
增加swap空间

◆ AOF深度解析

1. ◆ 7.0版本革命性改进

AOF文件结构
+base.aof.1 : 基础快照
+incr.aof.1 : 增量操作
+manifest : 文件清单
重写流程
+创建新base文件
+生成增量文件
+更新manifest

多文件优势
► 单文件大小可控
► 并行重写提升效率
► 快速定位损坏文件

2. ◆ 同步策略深度测试

策略QPS数据安全适用场景
always5k-8k★★★★★金融交易系统
everysec10k-15k★★★★☆电商订单系统
no20k+★★☆☆☆实时排行榜

3. ◆ 重写过程优化

2023-07-01 2023-07-01 2023-07-02 2023-07-02 2023-07-03 2023-07-03 2023-07-04 2023-07-04 2023-07-05 2023-07-05 2023-07-06 2023-07-06 2023-07-07 内存扫描 文件写入 增量合并 关键阶段 AOF重写耗时分析

调优参数
► aof-rewrite-incremental-fsync yes
► aof-rewrite-buffer 64mb
► no-appendfsync-on-rewrite yes


◆ 混合持久化实战

1. ◆ 配置示例

aof-use-rdb-preamble yes    ▋ 启用混合模式
aof-timestamp-enabled no    ► 禁用时间戳(提升性能)
RDB头
启动加载
存在AOF
加载AOF
加载RDB
检查混合格式
先加载RDB再增量

2. ◆ 数据恢复沙盘演练

管理员 Redis 磁盘 shutdown 写入最终AOF 备份aof/rdb 模拟数据损坏 删除损坏文件 恢复备份文件 启动服务 数据恢复成功 管理员 Redis 磁盘

◆ 监控与排错

1. ◆ 关键指标监控

redis-cli info persistence  # 持久化状态

核心指标
► rdb_last_bgsave_status
► aof_last_rewrite_status
► aof_current_size

2. ◆ 常见故障树

mindmaproot((AOF故障))--> 文件损坏--> 使用redis-check-aof修复--> 磁盘满--> 清理旧备份--> 挂载新磁盘--> 版本不兼容--> 升级Redis版本--> 权限问题--> chmod 644

◆ 终极对决:RDB vs AOF

1. ◆ 八维度对比

radar-charttitle RDB vs AOF对比axis 恢复速度, 空间效率, 数据安全, 性能影响, 可读性, 版本兼容, 运维复杂度, 网络传输RDB: 90, 85, 70, 80, 30, 95, 60, 75AOF: 60, 65, 95, 70, 90, 80, 75, 60

2. ◆ 场景化选择矩阵

场景特征推荐方案配置要点
高频写入+数据敏感AOF always使用SSD+定期快照
海量数据+快速恢复RDB+AOF混合1小时RDB+everysec策略
开发测试环境仅RDBsave 86400 1
跨地域灾备RDB压缩传输rdbcompression yes

◆ 专家级调优建议

1. ◆ 内存优化组合拳

持久化优化
调大repl-backlog
使用diskless模式
禁用THP
内存管理
设置内存上限
关闭透明大页
启用内存淘汰策略
监控fork耗时

2. ◆ 云环境特别建议

40% 30% 20% 10% 云Redis持久化方式占比 阿里云 AWS 腾讯云 其他

云服务差异
► 阿里云默认关闭持久化
► AWS ElastiCache强制RDB
► 腾讯云支持AOF热升级


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

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

相关文章

计算机网络——DNS

一、什么是DNS? DNS(Domain Name System,域名系统) 是互联网的核心服务,负责将人类可读的域名(如 www.baidu.com)转换为机器可识别的 IP地址(如 14.119.104.254)。它像一…

【软考-架构】5.2、传输介质-通信方式-IP地址-子网划分

✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 传输介质网线光纤无线信道 通信方式和交换方式会考:交换方式 💯考试真题第一题第二题 IP地址表示子网划分💯考试真题第一题第二题 传输…

基于SpringBoot+Vue的毕业论文管理系统+LW示例参考

1.项目介绍 系统角色:管理员、指导教师、评阅教师、学生功能模块:用户管理、毕业论文管理、课题信息管理、选题申请管理、课题任务管理、基础数据管理、公告信息管理、评阅教师管理、指导教师管理等技术选型:SpringBoot,Vue等测试…

文件系统 linux ─── 第19课

前面博客讲解的是内存级文件管理,接下来介绍磁盘级文件管理 文件系统分为两部分 内存级文件系统 : OS加载进程 ,进程打开文件, OS为文件创建struct file 和文件描述符表 ,将进程与打开的文件相连, struct file 内还函数有指针表, 屏蔽了底层操作的差异,struct file中还有内核级…

第十次CCF-CSP认证(含C++源码)

第十次CCF-CSP认证 分蛋糕满分题解 学生排队满分题解 Markdown语法题目解读满分代码 结语 分蛋糕 题目链接 满分题解 基本思路:我们需要保证除了最后一个小朋友之外的所有人,分得的蛋糕都大于等于给定的K值,为什么是大于等于,是…

MyBatis框架操作数据库一>xml和动态Sql

目录 配置连接字符串和MyBatis:数据库的连接配置:XML的配置: XML编写Sql:model层:mapper层: 动态Sql:if 标签和trim标签:where标签:Set标签:Foreach标签: Mybatis的开发有两种方式:: 注解和XML&…

编写Dockerfile制作tomcat镜像,生成镜像名为tomcat:v1,并推送到私有仓库。

1.具体要求如下: 基于rockylinux:8基础镜像; 指定作者为openlab; 安装tomcat服务,暴露8080端口; 设置服务自启动。 总结步骤:基于rockylinux:8,安装Java环境,安装Tomcat&a…

医院手术麻醉信息系统是如何为医院提质增效的?

近年来,随着HIS系统、LIS系统、PACS系统、EMR系统等信息系统的出现,医疗信息化已成为医疗领域推广的重点,显著提高了医院业务的运营效率。手术麻醉系统作为医院信息系统的一部分,由两个子部分组成:监测设备数据采集系统…

ios打包需要的证书及步骤

官网:https://developer.apple.com/account 避免他人登录apple账号的方法:就是让他们发测试设备的udid,手动注册到账号下,然后再给他们导p12证书和描述文件 iOS App Development iOS 开发版本签名(仅限 iOS App&#x…

C#特性和反射

1。特性概念理解? 特性(Attribute)是用于在【运行时】传递程序中各种元素(比如类、属性、方法、结构、枚举、组件等)行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所…

【毕业论文格式】word分页符后的标题段前间距消失

文章目录 【问题描述】 分页符之后的段落开头,明明设置了标题有段前段后间距,但是没有显示间距: 【解决办法】 选中标题,选择边框 3. 选择段前间距,1~31磅的一个数 结果

操作系统-八股

进程基础: 进程定义:运行中的程序,有独立的内存空间和地址,是系统进行资源调度和分配的基本单位。 并发,并行 并发就是单核上面轮询,并行就是同时执行(多核); 进程上下…

骑士74CMS_v3.34.0SE版uniapp全开源小程序怎么编译admin和member流程一篇文章说清楚

有粉丝一直问我骑士系统怎么编译后台和小程序目前骑士人才系统74CMS分标准版,创业板,专业版,其除功能不同外其配置方法完全一致有喜欢系统的也可以私信我或者找我获取 一.安装打包环境[Nodejs]这个就不用我说了吧,用不小于V20的版…

c语言zixue

该文主要是记录我学习中遇到的一些重点、易出问题的内容 教材p16.17 先从一个简单的例子开始吧 #include <stdio.h> //编译预处理命令 int main() //程序的主函数 {printf("To C"); //输出语句return 0; //返回语句 } #include <stdio.h>是编译预…

ollama API 本地调用

ollama API 本地调用 前提条件&#xff0c;ollama 已经启动了模型&#xff0c;查看 ollama 中的 model 名称 ollama list使用 openai 调用 from openai import OpenAI import openaiopenai.api_key ollama openai.base_url http://localhost:11434/v1/def get_completion(pro…

es6 尚硅谷 学习

1、let 1.变量不能重复声明 2.块级作用域 &#xff0c;只在块内有效 3.不存在变量提升&#xff0c;变量未声明之前不可使用 4.不影响作用域链 2、const const SCHOOL “温医”&#xff1b; 1.一定要有初始值 2.一般常量使用大写 3.常量不能赋值 4.块级作用域 5.对数组和对象…

在微信小程序或前端开发中,picker 和 select 都是用户交互中用于选择的组件,但它们在功能、设计和使用场景上有一定的区别

在微信小程序或前端开发中&#xff0c;picker 和 select 都是用户交互中用于选择的组件&#xff0c;但它们在功能、设计和使用场景上有一定的区别。 1. picker 的特点 描述&#xff1a; picker 是微信小程序中的原生组件&#xff0c;通常用于选择单项或多项值&#xff0c;如时…

C#通过API接口返回流式响应内容---分块编码方式

1、背景 上一篇文章《C#通过API接口返回流式响应内容—SSE方式》阐述了通过SSE&#xff08;Server Send Event&#xff09;方式&#xff0c;由服务器端推送数据到浏览器。本篇是通过分块编码的方式实现 2、效果 3、具体代码 3.1 API端实现 [HttpGet] public async Task Chu…

【SpringMVC】入门版

1.基本概念 1.1三层架构 三层架构也就是我们常说的b/s架构中的表现层&#xff0c;业务层和持久层,每层都各司其职&#xff0c;下面来分别讲解这三层的作用。 表现层&#xff1a; 也就是我们常说的web层。它负责接收客户端的请求&#xff0c;向客户端响应结果&#xff0c;通…

各省水资源平台 水资源遥测终端机都用什么协议

各个省水资源平台 水资源遥测终端机 的建设大部分从2012年开始启动&#xff0c;经过多年建设&#xff0c;基本都已经形成了稳定的通讯要求&#xff1b;河北瑾航科技 遥测终端机&#xff0c;兼容了大部分省市的通讯协议&#xff0c;如果需要&#xff0c;可以咨询和互相学习&…