主题
Redis 持久化
Redis 主要有两种持久化方式:
- RDB:定时生成内存快照。
- AOF:记录写命令日志。
两者可以单独使用,也可以同时使用。
RDB
RDB 会把某一时刻的数据快照写入磁盘。
手动生成快照:
bash
BGSAVEBGSAVE 会 fork 子进程生成快照,主进程继续处理请求。SAVE 会阻塞 Redis,线上不常用。
常见配置:
ini
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /data适合:
- 备份。
- 容忍少量数据丢失。
- 快速恢复大数据集。
AOF
AOF 会追加记录写命令,通过重放命令恢复数据。
常见配置:
ini
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysecappendfsync 常用值:
always:每次写入都刷盘,安全但慢。everysec:每秒刷盘,常用折中方案。no:交给操作系统决定,性能好但风险更高。
AOF 重写
AOF 文件会越来越大,需要重写压缩。
手动触发:
bash
BGREWRITEAOF常见配置:
ini
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb选择建议
- 缓存场景:可以不开持久化,或只开 RDB。
- 不能接受较大数据丢失:开启 AOF,使用
everysec。 - 需要恢复速度和数据安全折中:RDB + AOF 同时开启。
持久化不能替代备份,重要数据仍需要定期备份持久化文件。
