> 文章列表 > Redis持久化策略

Redis持久化策略

Redis持久化策略

    Redis有两种持久化方式:快照(snapshotting,或者叫Redis DataBase,RDB)和只追加文件(append-only,AOF)。两种方式可以单独使用,也可以同时使用。

1.RDB模式

    RDB:将某时刻所有数据都写入到硬盘里,存储为.rdb快照文件,新的快照文件生成之后会替换旧的快照文件。用户可以将快照复制到其他服务器。若在快照创建完成之前出现故障,Redis将丢失已有的最新快照之后写入的所有数据。

快照创建方式:

  • BGSAVE命令:Redis会创建子进程,子进程负责将快照写入硬盘,父进程继续处理命令请求。fork创建子进程时会阻塞。

  • SAVE命令:使用SAVE命令,Redis在快照创建成功之前不会响应任何其他命令。SAVE不常用,一般只在没有内存执行BGSAVE时才会使用,或系统可以等待持久化完成时使用。

    SAVE 60 10000 表示从最近一次快照创建之后开始,满足60秒内有10000次写入,Redis会自动触发BGSAVE命令。多个SAVE时,满足任意一个SAVE设置的条件都可以触发BGSAVE。

  • 当Redis接收到SHUTDOWN命令(关闭服务器)时,或收到标准TERM信号时,会执行SAVE命令阻塞所有客户端,在SAVE执行完毕后关闭服务器。

  • 当一台Redis服务器向另一台Redis服务器发送SYNC命令(复制操作)时,如果主服务器目前没有在执行BGSAVE,或者主服务器不是刚刚执行完BGSAVE,那么主服务器会执行BGSAVE命令。

    tips 1:如果使用快照持久化,最好让开发服务器的配置尽量贴近生