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

Docker Redis何时将数据存储到卷?Redis备份时机咨询

Docker Redis 数据写入与备份时机说明

一、是否每条命令都将数据存储至卷中?

不是,这全看Redis的持久化配置——Docker只是把Redis的数据目录挂载到卷里,和原生Redis的逻辑完全一样:

  • 默认Redis开启RDB持久化,这是快照式写入,不会每条命令都即时写到卷里,只有满足触发条件时,才会生成全量数据快照(.rdb文件)保存到卷中。
  • 如果开启AOF持久化,根据appendfsync的配置不同,有三种写入策略:
    • appendfsync always:每条命令执行后立刻同步写入卷中的AOF文件,性能最差但数据最安全。
    • appendfsync everysec:每秒把缓冲区里的命令同步到卷中,是默认推荐的平衡方案。
    • appendfsync no:完全交给操作系统处理刷盘,不会主动同步,数据丢失风险最高。

总结:只有开启AOF且设为always时,每条命令才会即时写入卷;其他配置下,都是批量或按条件写入。

二、Redis备份触发时机

Redis的备份主要和RDB快照、AOF重写两个机制相关:

RDB快照触发时机

  • 自动触发:符合配置文件里save指令的规则,比如默认的:
    • save 900 1:900秒内至少1个键被修改
    • save 300 10:300秒内至少10个键被修改
    • save 60 10000:60秒内至少10000个键被修改
      满足任一条件就会自动生成RDB快照到卷中。
  • 手动触发:执行SAVE(阻塞Redis进程直到快照做完)或BGSAVE(后台异步生成快照)命令。
  • 其他场景:Redis正常关闭(执行SHUTDOWN命令)时会强制生成RDB快照;主从架构里,从节点第一次连接主节点时,主节点会触发BGSAVE生成快照同步给从节点。

AOF重写触发时机

AOF文件会不断追加命令,体积越来越大,Redis会通过重写生成精简版的AOF文件(相当于重新执行所有有效命令生成新的AOF):

  • 自动触发:同时满足两个条件:
    1. 当前AOF文件大小比上次重写后的大小超出auto-aof-rewrite-percentage配置的比例(默认100%,也就是翻倍)
    2. 当前AOF文件大小至少达到auto-aof-rewrite-min-size配置的最小值(默认64MB)
  • 手动触发:执行BGREWRITEAOF命令,后台异步完成AOF重写。

内容的提问来源于stack exchange,提问作者gyeom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:41:01