这种方式可以将某一时刻的所有数据都写入硬盘中,这也是Redis 的默认开启持久化方式,保存的文件是以 .rdb
形式结尾的文件,因此这种方式也称之为 RDB方式。
快照生成方式:
-
客户端方式:
BGSAVE
和SAVE
指令 -
服务器配置自动触发
-
服务器
SHUTDOWN
自动触发
客户端可以使用 BGSAVE
命令来创建一个快照,当接收到客户端的 BGSAVE
命令时,Redis 会调用 fork
来创建一个子进程,然后子进程负责将快照写入磁盘中,而父进程则继续处理命令请求。
fork:当一个进程创建子进程的时候,底层的操作系统会创建该进程的一个副本,在类unix系统中创建子进程的操作会进行优化:在刚开始的时候,父子进程共享相同内存,直到父进程或子进程对内存进行了写之后,对被写入的内存的共享才会结束服务。
客户端还可以使用 SAVE
命令来创建一个快照,接收到 SAVE
命令的 Redis服务器在快照创建完毕之前将不再响应任何其他的命令;
注意:SAVE
命令并不常用,使用 SAVE
命令在快照创建完毕之前,Redis处于阻塞状态