Redis学习笔记:持久化

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

目录

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-sizeauto-aof-rewrite-percentage配置:当AOF文件超过指定的大小且比上一次重写后增长超过指定的百分比时,进行重写。
posted @ 2021-02-02 20:49  garvenc  阅读(123)  评论(0编辑  收藏  举报