概述
Redis支持数据持久化,主要有两种方式:RDB(Redis Database)和AOF(Append Only File),可以单独使用,也可以两者相结合。
RDB
RDB是基于snapshot(快照)的方式进行持久化,会将某个时间点的所有数据保存到磁盘中,可以将快照复制到其他服务器上从而创建具有相同数据的服务器副本。
优点:
- RDB文件是经过压缩的单个文件,保存了Redis在某个时间点的完整数据集,非常适合备份(backup)与灾难恢复(disaster recovery)。
- 生成RDB文件的时候,Redis主进程会fork()一个子进程来处理所有保存工作,父进程仍然可以处理客户端请求,不需要进行任何磁盘IO操作。
- 对于大数据集恢复,RDB比AOF更快。
缺点:
- 如果系统发生故障,将会丢失最后一次创建快照之后的数据。
- 如果数据量很大,保存快照的时间会很长。
流程
Redis默认会将数据集快照保存到磁盘上的dump.rdb文件中,可以设置每隔多长时间、至少多少次变更进行一次快照,或者手动执行