rdb
其实就是数据快照。这里又分为save和bgsave两个快照持久化方式,save会阻塞主线程,bgsave是通过fork子进程进行快照数据的持久化,优点是恢复快,缺点是容易丢失最近一次持久化间隔的数据
aof
其实就是将每条修改的redis命令都存一份到aof文件中,这里涉及到aof重写的优化手段,就是将几条相关的命令合并成一条最终的结果命令从而减少aof文件的大小,优点就是以aof方式恢复数据可以减少丢失的数据,缺点是恢复时间会偏长一点,因为你要从头到尾的执行一遍所有的命令,不想rdb可以直接加载数据到内存
混合持久化
就是在aof文件重写的时候直接把重写时的rdb快照数据存放进aof文件中,再把这期间及之后产生的修改命令追加到存放rdb快照的aof文件内容之后
从而在恢复数据的时候可以减少命令的执行,提高恢复速度