zoukankan      html  css  js  c++  java
  • 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启动效率低。

    当然本文是根据自己看书和参考其他博客中的内容总结而写的(http://www.cnblogs.com/stephen-liu74/archive/2012/04/02/2365017.html)。

  • 相关阅读:
    vba Application.OnTime 定时器
    Linq to XML
    Jquery Ajax+.ashx Json数据格式
    存储过程
    Jquery Ajax +.ashx XML数据格式
    原生态JS  图片滚动
    Standup Timer的MVC模式及项目结构分析
    android的Handler
    Microsoft Office Sharepoint Server 2007数据库日志文件逐渐增大处理笔记
    windows 网络编程学习Winsock API
  • 原文地址:https://www.cnblogs.com/bamaofan/p/5284014.html
Copyright © 2011-2022 走看看