01. Redis 怎么把数据存硬盘?
Redis 数据全在内存,断电就没了。它提供两种持久化方式:
RDB(快照)——每隔一段时间把整个内存「拍照」存硬盘,像游戏存档。文件小恢复快,但可能丢最后快照之后的数据。
AOF(追加日志)——每条写命令都记下来,像记账本。数据更安全(可做到每秒记一次),但文件比 RDB 大,恢复慢些。
02. RDB 快照——定期拍照
RDB 就是定期拍照——比如每 5 分钟有 100 次修改,生成 dump.rdb。恢复极快,适合备份。但两次快照之间的数据可能丢。
bash
# redis.conf RDB 配置
save 900 1 # 15 分钟有 1 次修改就拍
save 300 10 # 5 分钟有 10 次修改就拍
save 60 10000 # 1 分钟有 1 万次修改就拍
# 手动触发
BGSAVE # 后台保存,不阻塞(推荐用这个)
LASTSAVE # 看最后一次快照时间生产用 BGSAVE,它 fork 子进程做快照,不影响主进程干活。
03. AOF 日志——每笔都记
AOF 像记账——每条写命令追加到文件末尾。Redis 重启时把「账本」从头过一遍,数据恢复。
三种同步策略:
always——每条命令立刻写盘,最安全也最慢
everysec——每秒写一次,折中方案,最多丢 1 秒数据(推荐)
no——交给操作系统决定,最快但可能丢比较多
bash
# redis.conf AOF 配置
appendonly yes
appendfsync everysec # 每秒同步(推荐)
# AOF 文件会越来越大,需要重写压缩
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
BGREWRITEAOF # 手动重写
redis-check-aof --fix appendonly.aof # 修复损坏的 AOFAOF 损坏时 Redis 可能拒绝启动,用 redis-check-aof --fix 修复,但可能丢末尾损坏数据。
04. 混合模式——鱼与熊掌兼得
Redis 4.0 起支持混合持久化——AOF 重写时先以 RDB 格式存当前数据,后面跟 AOF 增量日志。加载快(RDB)又安全(AOF)。
生产最佳实践:同时开 RDB 和 AOF,AOF 用 everysec。RDB 做冷备份,AOF 保证数据不丢。
bash
# 混合持久化(Redis 4.0+)
aof-use-rdb-preamble yes知识测验
第 1/5 题正确 0
RDB 持久化的特点?
下一节
下一节 哨兵模式