Rdb
优……快照,文件小恢复快。
缺……宕机,两次快照间数据全部丢失。
配置……save 900 10 每900秒10次写入,根据并发业务场景定不同的写入配置
Aof刷盘
apengfsync 值三种 always每条命令刷盘,丢一条命令性能差 everysync每秒刷盘 丢失一秒 no 不刷盘
Aof文件大会发生重写
文件大触发重写,冗余命令合并压缩。
Fork子进程重写,内存直接翻倍,内存不够直接oom,磁盘io飙升,主进程写文件,子进程写临时文件
优化点……
auto-aof-rewrite-min-size=64m或128,避免小文件频繁重写
auto-aof-rewrite-percentage=100,文件增长一倍再重写,减少重写次数
no append fsync on rewrite vs=yes 重写时暂停主进程刷盘
混合持久化最优
Aof文件前半部分是rdb全量数据,后半部分是rdb增量命令
aof use rdb preamble =yes