千家信息网

Redis中AOF持久化方式的工作流程

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,Redis的RDB方式不能做到妙计持久化,但是AOF方式可以做到。如果数据比较重要,丢失会造成严重的后果,那么RDB方式明显不合适,要用到AOF的方式。aof方式和mysql的binlog日志有些像,
千家信息网最后更新 2025年01月20日Redis中AOF持久化方式的工作流程

Redis的RDB方式不能做到妙计持久化,但是AOF方式可以做到。如果数据比较重要,丢失会造成严重的后果,那么RDB方式明显不合适,要用到AOF的方式。aof方式和mysql的binlog日志有些像,都只记录新增、修改、删除的操作。不同的是,redis会每隔一段时间后,会对aof文件进行重写,降低aof文件的大小。

AOF工作流程

这里,为什么命令要先写入aof_buf,因为如果直接写入aof文件,那么性能就完全取决去硬盘的io性能。写入aof_buf是为了提高写入的性能。

配置

appendonly:是否开启aof持久化方式,默认是no。如想开启则改为yes。

dir:aof文件存放目录

appendfilename:aof文件名

appendfsync:aof同步方式,有三个值,分别如下:

  • always:每写入一个命令时就同步,数据的安全性最高,但性能差

  • everysec:每秒同步,默认的方式,性能高,安全性也还行

  • no:同步操作交给操作系统,数据的安全性最差。

auto-aof-rewrite-percentage 、auto-aof-rewrite-min-size 这两个配置是和aof重写机制相关的,只有同时满足这两个条件才会触发重写机制。

auto-aof-rewrite-min-size是表示重写时,文件大小必须必这个值要大,默认值是64mb

auto-aof-rewrite-percentage表示目前文件大小比上次重写后的文件大小大这么多才行。

AOF重写

redis的aof重写机制有手动触发和自动触发两种方式。手动触发即输入bgrewriteof命令。自动触发即满足上述所有的两个条件。

为什么重写能缩小文件体积,有几种情况:

  • 过期的键及已删除的键将不会再记录

  • 许多单个操作可以有一个操作来完成,比如lpush a、lpush b,重写后就是lpush a b.

下面看看aof重写流程

  1. 执行bgrewriteof命令

  2. 主进程fork出一个子进程

  3. 原有的aof机制继续运行,同时,也将新的命令写入到aof_rewrite_buf中

  4. 子进程生成新的aof文件

  5. 通知父进程,新的aof文件已经生成成功;将aof_rewrite_buf中的命令追加到新的aof文件中;用新的aof文件替换旧的aof文件。

  6. 完成以上步骤后,aof重写就完成了。

注意,如果一个服务器上面有多个redis服务,那么最好将他们重写的时间分隔开,防止io及cpu竞争过大。

以上就是Redis持久化之AOF方式的详细内容,更多请关注其它相关文章!

文件 方式 命令 性能 大小 机制 进程 同步 安全 两个 安全性 数据 流程 同时 就是 手动 时间 条件 服务 生成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全法称网络数据 山东新华医疗软件开发在哪个 软件开发合同项目编号规则 ctf网络安全竞赛平台题目 智能锁网络安全证书 致远被迫下线与服务器失去连接 黄山哪里学软件开发 网络安全 名词解释 大数据库保存时间 计算机网络技术怎么工作的 网络安全的边界连接哪里 dbserver怎么删除数据库 服务器虚拟机爆内存会重启吗 数据库技术交流促进双方 傲雷软件开发工程师面试题 软件开发框架合作协议范本 全省网络安全竞赛活动 广州无限软件开发批发价格 南通七和互联网科技有限公司 百度软件开发商是谁 视频点播软件开发 数据库服务器默认地址 长沙网络安全职业学院 网络诈骗中软件开发 网络安全工程师工资国外 罗布乐思如何解决服务器登录错误 我对网络安全的承诺 移动宽带用联通代理服务器 云南数据库原理及应用 易语言做数据库对接软件
0