RDB和AOF是redis持久化的基本!
一,RDB(Redis DataBase)
在指定的时间间隔内将内存中的数据集快照写入磁盘,实现持久化,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里
RDB工作过程:
Redis会单独创建一个(fork)子进程来进行持久化,他的数据来源于(OS写的复制机制)父进程与它的共享内存中,fork会将数据写入到一个临时文件中,等到持久化都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程时不进行任何IO操作的,因此确保了主进程极高的性能;
使用场景:
如果需要进行大规模数据的恢复,且对于数据的完整性要求不是那么高的话,RDB一定会比AOF要更加高效
RDB缺点:
1.由于RDB的工作特点,在上一次持久化数据没结束,但父进程却意外关闭,就会最后一次快照没有持久化到正式EDB文件中,导致数据不完整
2.fork子进程需要一定的内存空间
RDB文件保存的位置: dump.rdb
save触发机制:
1,save的规则满足的情况下,会自动触发rdb规则
2,执行flushall命令,也会触发rdb规则
3,推出redis,也会产生reb文件
备份就自动生成了dump.rdb
恢复rdb文件
1.将rdb文件放到redis的启动目录下就可以了,redis启动会自动检查dump.rdb回复其中数据
2.查看rdb应该存放的位置