redis默认不持久化,需手动开启rdb或aof:取消redis.conf中save三行注释以启用rdb;将appendonly no改为yes启用aof;4.0+版本可配aof-use-rdb-preamble yes启用混合持久化;rdb与aof的dir路径须一致,且重启服务才生效。

Redis 默认不持久化,断电或崩溃后所有数据清零——不是 Bug,是设计如此。必须手动开启 RDB 或 AOF,否则缓存变“易失性存储”,上线即裸奔。
redis.conf 里 save 规则被注释 = RDB 彻底关闭
RDB 快照是否生效,只看配置文件中 save 行是否启用。宝塔安装后默认三行全被注释:#save 900 1、#save 300 10、#save 60 10000,等于关掉了所有触发条件。
- 取消注释这三行(保留原值即可),含义分别是:900 秒内至少 1 次修改、300 秒内至少 10 次、60 秒内至少 10000 次写操作,任一满足即触发
BGSAVE - 确认
dbfilename dump.rdb未被改名,且dir /www/server/redis目录存在、Redis 进程有写权限(宝塔默认路径通常 OK,但需检查磁盘剩余空间) - 保存后必须点【重启】Redis 服务——仅【重载配置】不生效,这是宝塔常见坑
- 执行
redis-cli BGSAVE手动触发一次,然后立刻检查/www/server/redis/dump.rdb文件修改时间是否更新
appendonly no = AOF 日志完全禁用
AOF 是防丢数据的主力,但默认是关的。只要 appendonly no 还在,哪怕其他参数都设对了,AOF 也不会记录任何命令。
- 把
appendonly no改成appendonly yes,这是唯一开关 -
appendfsync everysec是推荐值:每秒刷盘一次,性能与安全性平衡;always虽强一致,但会拖慢写入 3–5 倍,慎用 - 务必设置
auto-aof-rewrite-min-size 64mb和auto-aof-rewrite-percentage 100,否则appendonly.aof可能涨到几 GB 也不自动重写 - AOF 重写需要临时空间,确保
dir所在分区有 ≥512MB 剩余空间
Redis 4.0+ 才能用 aof-use-rdb-preamble yes
混合持久化不是“RDB + AOF 同时开”就行,它依赖 Redis 版本和 AOF 重写机制。低于 4.0 的版本设了也无效,还会报错或静默忽略。
- 先执行
/www/server/redis/src/redis-server --version确认版本 ≥ 4.0(2026 年推荐用 7.0.x 或 7.2.x) - 必须已启用 AOF(
appendonly yes),否则混合模式无从谈起 -
aof-use-rdb-preamble yes要单独开启,且不能和旧版 RDB 配置冲突 - 混合模式只在 AOF 重写时生效,日常写入仍走纯 AOF 日志,别误以为“开了就一直用 RDB 格式”
最容易被忽略的是:RDB 和 AOF 的 dir 必须指向同一物理路径,否则重启时 Redis 可能加载错文件;另外,如果启用了密码(requirepass),redis-cli 手动操作前得先 auth,否则 BGSAVE 等命令会拒绝执行。











