当前位置: 首页 > news >正文

【Redis】AOF日志的三种写回机制

目录

  • 1、背景
  • 2、appendfsync always(同步写回)
    • 【1】工作机制
    • 【2】特点
    • 【3】实现原理
  • 3、appendfsync everysec(每秒写回,默认配置)
    • 【1】工作机制
    • 【2】特点
    • 【3】实现原理
  • 4、appendfsync no(操作系统控制)
    • 【1】工作机制
    • 【2】特点
    • 【3】实现原理
  • 5、三种策略对比

1、背景

redis的AOF(Append Only File)持久化提供了三种不同的写回策略,通过appendfsync配置项来控制,这三种策略在数据安全性和性能之间提供了不同的权衡选择。

2、appendfsync always(同步写回)

【1】工作机制

1、每次写入命令后立即执行fsync,将数据同步到磁盘
2、确保每个写命令都持久化到磁盘后才返回成功响应

【2】特点

维度说明
数据安全性最高,级别不会丢失数据
性能影响最差,每次写入都有磁盘I/O等待
适用场景对数据一致性要求极高的金融场景
吞吐量低,受限于磁盘IOPS

【3】实现原理

1、命令写入内存数据库
2、命令追加到AOF缓冲区
3、立即调用fsync()将缓冲区内容写入磁盘
4、返回客户端成功响应

3、appendfsync everysec(每秒写回,默认配置)

【1】工作机制

1、后台线程每秒执行一次fsync
2、折中方案,平衡性能和数据安全

【2】特点

维度说明
数据安全性可能会丢失最近1秒的数据
性能影响中等,突发写入可能有延迟
适用场景大多数生产环境的推荐配置
吞吐量较高,适合常规业务场景

【3】实现原理

1、命令写入内存数据库
2、命令追加到AOF缓冲区
3、主线程不阻塞,后台线程每秒检查一次缓冲区,缓冲区有数据就执行fsync()同步到磁盘
4、返回客户端成功响应

4、appendfsync no(操作系统控制)

【1】工作机制

1、完全由操作系统决定何时同步到磁盘
2、通常30秒一次,取决于内核配置

【2】特点

维度说明
数据安全性最低,可能丢失较多数据
性能影响最好,无额外同步开销
使用场景允许数据丢失的非关键业务
吞吐量最高,适合大量写入场景

【3】实现原理

1、命令写入内存数据库
2、命令追加到AOF缓冲区
3、立即返回客户端成功响应
4、操作系统在适当时机调用fsync()

5、三种策略对比

策略数据安全性性能数据丢失风险适用场景
always极高几乎为零金融交易,支付系统
everysec≤1秒数据大多数web应用
no可能丢失多秒数据缓存、非关键数据

相关文章:

  • matlab实现混沌扩频DCSK的仿真
  • VsCode开发环境之Node.js离线部署
  • 如何使用AI搭建WordPress网站
  • 创建Workforce
  • 灾备认证助力构建数据资产安全防线‌
  • Model 是 Agent 的大脑(以camel为例)
  • vue之混入mixin
  • 蓝牙host和controller
  • 变电站综合自动化系统
  • lanqiaoOJ 4185:费马小定理求逆元
  • 强化学习入门:RL开发框架Gym简介
  • Docker run命令-p参数详解
  • 计算机网络-MPLS VPN报文转发
  • vue3中RouterView配合KeepAlive实现组件缓存
  • JavaWeb 开发流程
  • 阿里发布扩散模型Wan VACE,全面支持生图、生视频、图像编辑,适配低显存~
  • LeetCode-链表-反转链表+链表的中间结点
  • Android Handler/Looper线程管理实战攻略:从零到企业级开发
  • Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解
  • 【面试题】Session 和 Cookie 的区别
  • php外贸网站模板/微博营销的特点
  • 太原网站建设方案维护/上海比较好的seo公司
  • 长沙专业做网站的公司/浏览器下载
  • 武汉做的比较好的装修网站/营销型网站建设的5大技巧
  • 永嘉营销网站建设/成都网站快速优化排名
  • 个人制作的网站/免费的seo网站