You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何增/减/删除appendonly.aof的持久化卷?(非Docker环境)

针对appendonly.aof持久化卷的增/减/删除操作方案(非Docker环境)

操作前通用注意事项

  • 操作前必须备份当前appendonly.aof文件,避免数据丢失:cp /path/to/current/appendonly.aof /path/to/backup/appendonly.aof.bak
  • 停止Redis服务,避免操作过程中AOF文件被写入:systemctl stop redis(systemd管理场景)或kill $(pidof redis-server)(直接终止进程)
  • 确保目标卷的权限匹配Redis运行用户要求,比如Redis以redis用户运行时,执行chown -R redis:redis /target/volume/path

一、增加持久化卷(无法直接扩容时的迁移方案)

当现有卷无法扩容时,通过迁移AOF文件到更大的新卷实现扩容:

  1. 在新卷创建Redis数据目录:mkdir -p /new/larger/volume/redis-data
  2. 复制当前AOF文件到新目录:cp /old/volume/redis-data/appendonly.aof /new/larger/volume/redis-data/
  3. 修改Redis配置文件redis.conf:
    • 找到dir配置项,替换为新卷的Redis数据目录:dir /new/larger/volume/redis-data
    • 确认appendfilename配置(默认值为appendonly.aof,无需修改,自定义名称除外)
  4. 调整新目录权限:chown -R redis:redis /new/larger/volume/redis-data
  5. 启动Redis服务:systemctl start redis
  6. 验证:登录redis-cli执行info persistence,查看aof_current_size和dir路径是否正确,同时执行数据读写操作确认正常

二、减少持久化卷(迁移至更小的卷)

前提:当前AOF文件大小小于目标卷可用空间,建议先压缩AOF文件冗余内容

  1. (可选)压缩AOF文件:登录redis-cli执行bgrewriteaof,等待重写完成(通过info persistence查看aof_rewrite_in_progress是否为0)
  2. 停止Redis服务(同通用步骤)
  3. 在新的小卷创建Redis数据目录:mkdir -p /new/smaller/volume/redis-data
  4. 复制压缩后的AOF文件到新目录:cp /old/volume/redis-data/appendonly.aof /new/smaller/volume/redis-data/
  5. 修改redis.conf的dir配置为新目录路径
  6. 调整新目录权限,启动Redis服务
  7. 验证:同增加卷的验证步骤,确认数据完整且AOF正常写入

三、删除持久化卷(停止AOF持久化并移除卷关联)

  1. 停止Redis服务
  2. 修改redis.conf,将appendonly yes改为appendonly no,关闭AOF持久化
  3. (可选)删除原AOF文件:rm /old/volume/redis-data/appendonly.aof
  4. 若要完全解除卷关联,可将Redis数据目录迁移至其他路径(或切换为RDB持久化),然后卸载原持久化卷
  5. 启动Redis服务,执行info persistence确认aof_enabled为0

内容的提问来源于stack exchange,提问作者Md Saba Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:57:34