redis持久化步骤:Redis的持久化
Redis是一种高效的内存数据库,但是一旦重启或崩溃,内存中的数据就会丢失。为了解决这个问题,Redis提供了两种持久化方式,即RDB和AOF。RDB将Redis在内存中的数据快照写入磁盘,而AOF则将所有命令追加到一个只追加文件中,以便在Redis重新启动时重新创建数据。使用持久化可以确保Redis的数据不会丢失,即使在设备重启、崩溃或断电的情况下。

Redis RDB持久化的步骤
RDB持久化将Redis的内存状态(一个快照)写入磁盘。以下是Redis RDB持久化期间的步骤:
Redis执行bgsave命令
当Redis执行bgsave命令时,Redis将以子进程的形式创建一个副本,该副本将继续使用Redis主进程即将写入的内存,期间不会受到请求的影响。
Redis快照
子进程通过复制Redis内存状态来创建快照。复制是通过将快照写入磁盘而实现的。
替换现有RDB文件
创建快照后,在磁盘上查找现有的RDB文件,并将其替换为新的。
完毕
完成后,Redis将释放子进程,并再次处理请求。
Redis AOF持久化的步骤
AOF持久化以将所有写入命令追加到日志末尾的方式来记录Redis数据库中发生的所有修改。以下是Redis AOF持久化期间的步骤:
将命令写入缓冲区
Redis将执行的所有命令都会写入缓冲区或文件中,并追加到追加输出文件(AOF)的尾部。缓冲区中的日志会定期被转换为AOF文件。默认情况下,Redis发送缓冲区中的数据至少有一秒钟的延迟。
执行操作
接下来,Redis执行缓冲区中的命令,执行写操作来持久化数据。当Redis执行写操作时,它会将操作写入一个缓冲区,该缓冲区将调度到硬盘上的AOF文件中。
AOF重写
AOF重写是一种无损压缩工具,用于根据最近的内存状态重写AOF文件。这个过程很类似与RDB持久化。但是,AOF重写不需要重放以前的操作,因为内存状态可以完全表示。
完毕
完成后,Redis开始处理请求。如果在重写AOF文件时有其他写入操作,则将它们添加到新创建的AOF文件中。

