- Redis提供两个命令来生成RDB文件,分别是save和bgsave
- save:在主线程中执行,会导致阻塞。
- bgsave:创建一个子进程,专门用于写入RDB文件,避免了主线程的阻塞,这也是Redis RDB文件生成的默认配置。
-
Redis是对全部数据做快照
-
做快照时数据是能修改的,redis借助操作系统的写时复制技术,执行快照的同时,正常处理写操作。如果主线程要修改一块数据,那么该数据就会被复制一份,生成该数据的副本,然后bgsave子线程就会把这个副本写入rdb文件。
4.redis4.0中提出了一个混合使用AOF日志和内存快照的办法,内存快照以一定的频率执行,在两次快照之间,使用AOF日志记录这期间的所有命令。在下一次快照备份的时候,只追加这些命令即可。