一、RDB持久化是一种快照的方式来报存到硬盘上的,触发rdb分为手动触发和自动触发。完成后会自动生成一个文件,保存到dir配置的指定目录。
1.1手动触发的命令有save和bgsave.
save:该命令会阻塞redis服务器,直到rdb的过程完成,已经被废弃。
bgsave:每次进行rdb过程都会被fork一个子进程,由子进程完成rdb的 *** 作,因此阻塞在fork阶段,时间较短。
1.2自动触发:配置
1.3RDB执行流程:执行完bgsave后,会先判断是否存在aof和rdb的子进程。如果存在,就直接返回。2.如果不存在,父进程fork就会创建一个子进程,fork *** 作中父进程会被阻塞。3.fork完成后,子进程开始根据父进程的内存生成临时快照文件,完成后对原有的rdb文件进行替换。4.子进程完成后发送信号给父进程,父进程更新信息。
1.4RDB优点:代表redis是在某个时间点上的数据快照,非常适用于备份,全量复制等场景,比如每6小时执行一次bgsave。速度比aof快
1.5缺点:无法做到实施持久化,秒级持久化
二、aof:以独立日志的方式记录每次写命令,重启时再重新执行aof文件中的命令达到恢复数据的目的。aof的主要作用就是解决了数据持久化的实时性。
2.1开启aof:配置
2.2执行流程:命令写入,文件同步,文件重写,重新加载
3.aof优点:可以设置不同的fsync策略。比如每秒设置一次。就算发生故障也丢失1秒中的数据
aof缺点:体积大于rdb,速度较慢,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)