前言
本文主要内容:
SAVE和BGSAVE的区别:
RDB和AOF的选择:
内容为《深入分布式缓存:从原理到实践》的相关读书笔记。
持久化
Redis的持久化有两种方式:全量模式RDB和增量模式AOF。
全量模式RDB
基于全量模式的持久化Redis作为一个有状态节点,其“状态”可以用实例内部所有db的key-value值来定义,每一次Redis处理一个数据访问写命令修改了db的key-value数据时,Redis就发生了一次状态变迁。基于全量的持久化即在持久化触发的时刻,将当时的状态(所有db的key-value值)完全保存下来,形成一个snapshot,如图所示。
当Redis重启时,通过加载最近一个snapshot数据,可将Redis恢复至最近一次持久化时的状态上。
RDB写入流程
全量写入包含两种方式:SAVE和BGSAVE,两者逻辑如图所示: