redis:AOF

Redis AOF(Append Only File)核心知识点总结

一、核心定义与作用

AOF 是 Redis 的一种持久化方式,以文本 / 二进制形式记录所有写命令(如 set、lpush 等),核心作用是保存数据、实现宕机后的数据恢复,解决 "数据丢失" 问题,与 RDB 持久化形成互补。

二、核心操作与常见疑问解答

(一)基础操作逻辑

  1. 启用配置:需在 redis.conf 中设置 appendonly yes,开启 AOF 持久化;
  2. 缓冲区与刷盘:写命令先存入 AOF 缓冲区,再按 appendfsync 策略刷入磁盘(避免频繁 IO);
  3. 权限问题:修改 AOF 相关配置(如 appendfsync)时,需用 sudo 提升权限(否则提示权限不足);
  4. 编辑与保存:用 vim 打开配置文件时,按 Esc 退出编辑模式,输入 :wq 保存退出(只读时用 :q! 放弃修改)。

(二)你关注的核心疑问(重点)

  1. 关于 "是否用 / 搜索":在 vim 编辑模式下,输入 / + 关键词(如 appendfsync),可快速定位相关配置,按 n 切换匹配结果,符合你的操作需求;
  2. 关于 "瘦身与数据处理":子进程负责 AOF 重写,不看命令过程、只看最终结果------ 比如多次 lpush 命令,会被合并成 1 条完整命令,去掉冗余;
  3. 关于 "父进程与子进程分工":父进程处理新请求、缓存增量命令,子进程负责基于内存快照生成精简命令,两者结合完成 AOF 文件的优化与更新。

三、AOF 重写机制(核心瘦身手段)

  1. 重写本质:不依赖旧 AOF 文件,直接读取内存中的最终数据,生成最简命令集(如多次 set 合并为 1 条最终命令);
  2. 触发方式:自动(按配置阈值)或手动(bgrewriteaof 命令);
  3. 数据安全:重写过程中,新写命令会存入缓冲区,避免数据丢失,最终拼接成完整的 AOF 文件。

四、关键注意事项

  1. 版本与兼容性:AOF 文件格式与 Redis 版本绑定,跨版本使用时需注意兼容性;
  2. 性能平衡:everysec 刷盘策略是生产首选,兼顾数据安全(丢失最多 1 秒数据)与业务性能;
  3. 常见报错:权限不足(加 sudo)、交换文件冲突(删除 .swp 临时文件),均为基础权限 / 文件冲突问题。

五、总结

AOF 核心是 "记录命令、恢复数据",重写核心是 "跳过过程、保留结果",父进程与子进程分工协作,既保证业务正常运行,又实现文件瘦身,解决你关注的 "冗余、权限、搜索" 等核心问题。

相关推荐
小徐不徐说5 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
论文复现现场6 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
心梦缘-雪雁8 小时前
SQL Server 查询数据存在哪个表里
数据库
lusklusklusk9 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
代码丰9 小时前
大 JSON 放进 Redis 之后,如何用 Stream 解耦耗时任务?
redis·后端·系统架构
GeW9 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB10 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
曼岛_10 小时前
[图解密码学]第4章 古典密码
java·数据库·密码学
一枕槐安48710 小时前
RAG 服务扛住高并发:缓存、队列、限流三件套
java·spring·缓存·异步任务·rag·断路器