redis两种持久化方式:AOF RDB
在AOF章节讲到AOF通过追加命令的方式进行数据的持久化,这样存在一个问题:数据恢复时需要重新执行所有命令 耗时较长,RDB保存的是全量的数据,可以较快恢复数据
RDB的一些理解:
1、RDB是存储数据的快照,是数据的全量快照(没有选择增量快照的原因是 增量的数据需要另外存储)
2、触发RDB的两个命令,save:在主线程中进行 bgsave:主线程fork出一个子线程进行数据快照(redis默认的方式)
3、在RDB的同时允许有写操作,新修改或者写入的数据存在另一个缓冲区中,RDB时会读这个缓冲区数据及原来数据,采用写时复制的技术(cow)
RDB和AOF的选择:
RDB:快照速度慢 数据恢复快,频率不宜过高
AOF:快照数据快,数据恢复慢
可以RDB和AOF混合使用 或者单独使用其中一种方式