本文更新于2021-02-02,使用Redis 6.0.8,操作系统为Deepin 15.11。

目录

快照

AOF

Redis的持久化有两种方式:

快照(snapshotting):将某一时刻的所有数据都写入磁盘中。

只追加文件(append-only file/AOF):将被执行的写命令追加到磁盘中。

持久化需要创建子进程时,如果Redis服务器占用的内存过大,并且剩余的空闲内存不多或运行在虚拟机上面,可能也会导致系统长时间停顿,也可能引发系统大量地使用虚拟内存。

快照

创建快照文件有以下几种办法:

使用

SAVE

命令:Redis服务器在快照文件创建完毕之前都不再响应任何其他命令。

使用

BGSAVE

命令:(Windows不支持)Redis服务器会调用fork创建一个子进程,子进程负责将快照文件写入磁盘,父进程继续处理命令请求。

使用

SHUTDOWN

命令:Redis服务器将执行一次

SAVE

命令,之后关闭服务器,不再执行任何其他命令。

使用

save

配置:当任意一个

save

配置满足条件时,Redis服务器将执行一次

BGSAVE

命令。

TERM信号:Redis服务器将执行一次

SAVE

命令,之后关闭服务器,不再执行任何其他命令。

主服务器收到从服务器的

SYNC

命令:主服务器执行一次

BGSAVE

命令。

AOF

重写AOF文件有以下几种办法:

使用

BGREWRITEAOF

命令:(Windows不支持)Redis服务器会调用fork创建一个子进程,子进程负责将AOF文件写入磁盘,父进程继续处理命令请求。

使用

auto-aof-rewrite-min-size

auto-aof-rewrite-percentage

配置:当AOF文件超过指定的大小且比上一次重写后增长超过指定的百分比时,进行重写。