简介
RDB 持久化以指定的时间间隔执行数据集的时间点快照。恢复时是将快照文件直接读到内存里。
触发方式
RDB有两种触发方式,分别是主动触发和被动触发
1.被动触发
N 秒内数据集至少有 M 个改动这一条件被满足时,自动保存一次数据集
例如下列配置表示60秒内有10000次操作会保存一次数据
save 60 10000
2.主动触发
① save
使用save会阻塞线程,使redis不可对外提供服务,直到RDB备份完成,一般在停机维护的时候才会使用
②bgsave
redis使用fork开启一个子线程用来备份数据,主线程会继续对外提供服务,阻塞一般时间很短,因为fork创建出来的子进程和父进程有一样的数据段,子进程只需要映射父进程的物理空间,当父进程的数据段发生改变时,会为子进程相应的数据段分配单独的物理空间,保证dump.rdb 具有时点性。
这篇文章可以帮你了解fork
fork简介
3.弊端
①不支持拉链,只有一个dump.rdb文件,所以要每天进行备份
②丢失数据较多,例如正在备份时,挂机了,到时候正在备份的那个时间段丢失
4.优势
①数据恢复速度快