RDB和AOF
RDB
如何生成RDB文件
在指定的时间内将内存中的数据集体快照写入磁盘,也就是snapshot快照,恢复时将快照文件直接读到内存中。
redis会创建一个单独的(fork)紫禁城来进行持久化。
1.父进程会先fork一个子进程。
2.子进程会先把数据临时些一个文件,生成一个临时的RDB文件。
3.这个临时的RDB文件会替换上次持久化号的文件。
4.生成一个正式的RDB文件。
整个过程中,主进程不进行IO操作,确保了性能。如果需要进行大鬼为的数据回复,且数据回复的完整性不是非常敏感,RBD要比AOF方式更加的高效。
RDB的缺点时最后一次持久化后的数据可能会丢失。默认的持久化都是RDB,一般情况下不需要修改。
在生产环境下,会将rdb的文件备份。
RDB保存的文件
dump.rdb
40秒内,修改了3次key就会触发RDB操作
找到dump.rdb的位置,并且删除。
rbd的文件重新生成了。
触发机制
1.save的规则满足的情况下,会触发
2.执行flushall命令,也会触发
3.退出redis,也会产生rdb文件
备份会自动生成一个dump.rdb文件
如何回复RBD文件
只需要将rdb文件放在redis启动目录下,redis启动的时候自动检查dump,并恢复数据。