redis的持久化机制说白了,就是在指定的时间间隔内,将内存当中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存什么意思呢?我们都知道,内存当中的数据,如果我们一断电,那么数据必然会丢失,但是玩过redis的同学应该都知道,我们一关机之后再启动的时候数据是还在的,所以它必然是在redis启动的时候重新去加载了持久化的文件
redis提供两种方式进行持久化,一种是RDB持久化默认,另外一种是AOF(append only file)持久化。
详解Redis中两种持久化机制RDB(面试常问,工作常用)
1.RDB是什么?
原理是redis会单独创建(fork)一个与当前进程一模一样的子进程来进行持久化,这个子线程的所有数据(变量。
环境变量,程序程序计数器等)都和原进程一模一样,会先将数据写入到一个临时文件中,待持久化结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何的io操作,这就确保了极高的性能
1.这个持久化文件在哪里
2.他什么时候fork子进程,或者什么时候触发rdb持久化机制
shutdown时,如果没有开启aof,会触发 配置文件中默认的快照配置 执行命令save或者bgsave save是只管保存,其他不管,全部阻塞 bgsave: redis会在后台异步进行快照操作,同时可以响应客户端的请求 执行flushall命令 但是里面是空的,无意义
2.aof(–fix) ls -l --block-size=M是什么?
原理是将Reids的操作日志以追加的