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

执行Redis save命令后强制关机,快照未持久化的原因咨询

解答

核心原因:操作系统磁盘缓存的异步刷写

Redis的SAVE命令执行完成并输出DB saved on disk日志,仅代表Redis进程已将RDB数据写入操作系统的页缓存(内存级缓存),而非直接写入物理磁盘。操作系统为了优化IO性能,会延迟将页缓存数据刷写到磁盘。此时强制关机,页缓存中未刷盘的新RDB数据会丢失,Redis重启后加载的还是旧的dump.rdb文件。

与flushdb无关

flushdb只是清空内存中的所有键,后续SAVE生成空RDB的逻辑完全正常,不是导致数据未持久化的原因。

确保持久化的解决方案

  • 使用SHUTDOWN SAVE命令:这是最可靠的方式,它会在关闭Redis前完成快照,并强制操作系统将数据刷写到磁盘。
  • 依赖rdb-save-incremental-fsync配置:该配置默认开启,会在RDB写入过程中每隔一定字节触发一次磁盘同步,减少最终未刷盘的数据量。
  • 手动触发系统磁盘同步:在Linux系统中,执行SAVE后可调用sync命令,强制操作系统将页缓存数据刷写到磁盘。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:50:58