Redis怎样优雅地关闭AOF_在运行期间动态将appendonly设置为no

CONFIG SET appendonly no 的真实行为是停止追加新命令、触发最终AOF rewrite生成最小化快照文件、清空缓冲区,但不删除原AOF文件且不修改配置项。不能直接关闭正在写入的 AOF 文件,CONFIG SET appendonly no 会触发 Redis 自动重写并清空当前 AOF 缓冲区,但旧 AOF 文件仍保留在磁盘上------这不是"关闭",只是停写新内容。CONFIG SET appendonly no 真实行为是什么这条命令不是"关掉 AOF",而是让 Redis 停止追加新命令到 appendfilename 指定的文件,并在后台完成一次最终的 AOF rewrite(如果缓冲区非空),生成一个最小化快照式 AOF 文件,然后清空缓冲区。原 AOF 文件不会被删除,也不会被自动禁用加载。执行后 redis.conf 中的 appendonly 仍是 yes,重启后仍会加载原 AOF 文件Redis 进程里 INFO persistence 显示 aof_enabled:0,但 aof_current_size 和 aof_base_size 不归零若此时手动删掉 appendfilename 对应的文件,重启会报错:Failed opening the AOF file: No such file or directory想真正停用 AOF,必须做三件事仅靠 CONFIG SET 不足以让 AOF "消失"。要让 Redis 彻底不依赖 AOF 启动,需同步操作配置、文件和持久化策略:先执行 CONFIG SET appendonly no 停止追加再执行 CONFIG SET appendfilename ""(可选,但避免后续误加载)手动删掉磁盘上的 AOF 文件(路径见 CONFIG GET appendfilename),否则重启时仍会尝试加载修改 redis.conf:把 appendonly yes 改成 appendonly no,否则下次重启又启用为什么不能只删文件不改配置Redis 启动时按 redis.conf 的 appendonly 和 appendfilename 决定是否加载 AOF。即使你删了文件,只要 appendonly yes 且 appendfilename 指向某个路径,Redis 就会在启动时检查该路径是否存在;不存在就报错退出,不会自动 fallback 到 RDB。 There's An AI For That 全球领先的 AI 聚合器,收集10,225个AI工具,可用于超过2,548个任务。

相关推荐
烂蜻蜓11 分钟前
Flask入门教程(十五):错误处理与日志——打造健壮的Web应用
前端·python·flask
风哥2号12 分钟前
华为高斯数据库恢复工具FGOGDU(FGEDU openGauss DUL)
数据库·opengauss·华为高斯
2401_8906034020 分钟前
Python入门语法(一)
java·开发语言·python
小蒜学长20 分钟前
springboot党建云课堂学习与管理系统(代码+数据库+LW)
java·数据库·spring boot·后端·学习
2601_9621803321 分钟前
FlinkCDC 实现 MySQL 数据变更实时同步
数据库·mysql
2601_9621896024 分钟前
深入浅出MySQL:概述与体系结构解析
数据库·mysql
烂蜻蜓26 分钟前
Flask入门教程(十六):中间件与扩展——增强应用功能的两种机制
python·中间件·flask
Gain_chance30 分钟前
大数据毕业设计实战|Data Insight Platform:用 FastAPI + ClickHouse 打造低门槛全链路数据洞察平台
大数据·数据库·clickhouse·毕业设计·fastapi
harmony&1 小时前
ETCD 存储系统实战:从单节点部署到 Kubernetes 高可用集群
数据库·kubernetes·etcd