zoukankan      html  css  js  c++  java
  • redis持久化rdb&aof分析

    redis是一个内存数据库,数据都是加载在内存中,因此效率很高很快。但是内存中的数据会因为关机断电等操作消失,一次redis会有一个策略来将内存中的数据保存到硬盘中。

    linux 可以使用whereis redis 查看redis配置文件和命令位置

    连接redis可以使用命令 config get dir 查看持久化文件保存位置

    redis持久化策略有两种

    rdb

      rdb策略会根据redis配置文件中的save参数【save seconds changes】对redis主线程fork一份子线程,进行内存快照压缩,生成一份dump.rdb文件(文件路径可以修改redis.conf--请先备份 dir 参数,文件名称可以修改dbfilename 参数)

      持久化策略通过,save参数来配置。默认save参数

      优点:对于大量数据来说rdb保存很快

      缺点:可能会丢失最后一次快照后的数据,因为会fork一份子线程,数据量太大的话,会有加大内存负担

    aof

      aof 可以通过配置文件redis.conf 中appendonly参数配置为Y,默认不开启。

      持久化策略有三种,通过appendfsync参数来配置,默认everysec。

     

      aof因为保存的是操作记录日志类比于mysql的binlog。所以当aof文件大小超过一定体积的时候,会触发rewrite策略。rewrite的时候回fork一份子线程,进行日志读取,将最新记录写到新文件中,然后进行重命名。

    为了不频繁触发rewrite,所以要合理配置min-size的大小。

       优点:aof通过合适的同步策略可以保存数据的操作记录,而且aof文件协议也很方便读懂。数据丢失粒度会很小

       缺点:aof是追加文件策略,占用体积要大于rdb,而且性能相较于rdb也会慢一些。

    rdb和aof两种持久化策略,可以同时存在的,同时存在时,aof为主持久

      

  • 相关阅读:
    maven项目启动报错
    maven环境变量配置
    jdk版本升级 eclipse启动失败
    jdk10 环境变量配置
    Invalid bound statement 无效的绑定 的解决办法!
    【Java】-NO.16.EBook.4.Java.1.004-【疯狂Java讲义第3版 李刚】- 内部类
    【Java】-NO.14.Java.4.Java.1.001-【Java JUnit 5 】-
    【Java】-NO.13.Java.1.Foundation.1.001-【Java IO】-
    【设计模式】用追MM来解释23种设计模式,转
    【Linux】-NO.8.Linux.4.Command.1.001-【Common Command】-
  • 原文地址:https://www.cnblogs.com/BigWrite/p/14349264.html
Copyright © 2011-2022 走看看