zoukankan      html  css  js  c++  java
  • 缓存使用-4、Redis 持久化机制

    一、redis启动时载入持久化文件的流程。

    二、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启动效率低。

  • 相关阅读:
    CVS 快速入门指南
    我的博客皮肤
    OOP三个基本特征
    vi 操作
    智者能堪破这世界的定数,但没人能逃脱劫数
    技术路径的四阶段
    python每日学习2018/1/14(python之禅)
    python每日学习2018/1/11
    Python PyInstaller安装和使用教程(详解版)
    Windows环境下安装MinGW/gcc
  • 原文地址:https://www.cnblogs.com/chenxiaoxian/p/10426939.html
Copyright © 2011-2022 走看看