redis的持久化

102 阅读2分钟
快照持久化RDB

将某个时间点的所有数据都存放到硬盘上,可以将快照复制到其它服务器从而创建具有相同数据的服务器副本



特点:

1,快照本质是二进制文件,

2,用于全量备份;

3,不适用与实时,持久化备份;

4,恢复速度快,高于AOF

5,故障可能丢失最后一次创建快照之后的数据

6,数据量很大,保存快照的时间也会很长。



AOF 持久化 将写命令添加到 AOF 文件(Append Only File)的末尾



写命令添加到 AOF 文件时,有以下同步选项:

always:每个写命令都同步,严重减低服务器的性能;

everysec:每秒同步一次,比较合适,保证系统奔溃时只会丢失一秒左右的数据,并且 Redis 每秒执行一次同步对服务器性能几乎没有任何影响;

no:让操作系统来决定何时同步,给性能带来提升,且会增加奔溃时数据丢失量

对硬盘的文件进行写入时,写入的内容首先会被存储到缓冲区,操作系统决定何时写,用户可以调用 file.flush() 方法请求尽快将缓冲区存储的数据同步到硬盘



特点:

1,通过日志方式记录写命令

2,适用于数据实时持久化



快照的触发时机:

RDB(手动触发,两个方法save,bgsave);

AOF手动触发: 调用bgrewriteaof命令实现

AOF自动触发: 根据文件体积, 文件空间设计的大小触发



各种持久化的应用场景:

RDB: 不考虑少量数据丢失情况; 大文件数据, 容灾恢复

AOF: 需要实时备份情况

更多技术资讯可关注:itheimaGZ获取