RDB
优点:
- 结构紧凑,全量备份,适合容灾恢复与备份;
- 生成RDB文件时,redis会根据主进程fork一个子进程进行保存,主进程还可以继续读写操作;
- RDB恢复大数据量时比AOF要快;
缺点:
- 子进程保存RDB文件时,主进程还在继续读写,有可能会丢失数据;
AOF
redis会将每一个收到的写命令都通过write函数追加到AOF文件;
aof触发机制:
- always:每次修改完同步,性能较差,数据完整性好;
- everysec:异步,每秒记录,一秒内宕机,会有数据丢失;
- no:从不同步;
- AOF通常比RDB要大很多,一般来说可以选择RDB和AOF混合的方式,AOF选择每秒记录(everysec),性能还是很高的;
- RDB生成时间较久,一般用来做数据冷备,AOF做数据热备;