redis两种持久化机制

两种持久化机制是RDB和AOF机制


  RDB持久化是指用数据集快照的方式记录redis数据库的所有键值对。

  两个命令:SAVE命令会阻塞主进程来完成写文件,BGSAVE命令会创建子进程来完成写文件,主进程会继续处理命令。

  优点:

  1.只有一个文件dump.rdb,方便持久化。

  2.容灾性好,一个文件可以保存到安全的磁盘。

  3.性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化。

  4.相对于数据集大时,比AOF的启动效率更高。

  缺点:

  1.数据安全性低,通过配置save参数来达到定时的写快照,比如 每900 秒有1个键被修改就进行一次快照,每600秒至少有10个键被修改进行快照,每30秒有至少10000个键被修改进行记录。所以如果当服务器还在等待写快照时出现了宕机,那么将会丢失数据。

  2.fork子进程时可能导致服务器停机1秒,数据集太大。


 AOF持久化是指所有的命令行记录以redis命令请求协议的格式保存为aof文件。

  优点:

  1.数据安全,aof持久化可以配置appendfsync属性,有always,每进行一次命令操作就记录到aof文件中一次;everySec,就是每秒内进行一次文件的写操作;no就是不进行aof文件的写操作。

  2.通过append模式写文件,即使中途服务器宕机,可以通过redis-check-aof工具解决数据一致性问题。

  3.AOF机制的rewrite模式,用来将过大的aof文件缩小,实现原理是将所有的set 通过一句set 命令总结,所有的SADD命令用总结为一句,这样每种命令都概括为一句来执行,就可以减少aof文件的大小了。(注意,在重写的过程中,是创建子进程来完成重写操作,主进程每个命令都会在AOF缓冲区和AOF重写缓冲区进行保存,这样旧版aof文件可以实现数据最新,当更新完后将重写缓冲区中的数据写入新的aof文件中然后就可以将新的文件替换掉旧版的文件。

  缺点:

  1.文件会比RDB形式的文件大。

  2.数据集大的时候,比rdb启动效率低。

    博客是自己理解 然后看博主写的不错转载的(https://www.cnblogs.com/bamaofan/p/5284014.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值