黑马程序员技术交流社区

标题: 【广州python】redis的持久化 [打印本页]

作者: 丁柳    时间: 2019-7-18 18:45
标题: 【广州python】redis的持久化
快照持久化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: 需要实时备份情况






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2