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为主持久

      

  • 相关阅读:
    SQL Server 快速大数据排序方法
    RGB颜色名称与色值对应表
    Visual Studio 2017 Android 调试无法连接到虚拟机
    sqlite 使用 cte 及 递归的实现示例
    C# 判断文件编码
    SQL点点滴滴_SQL分页查询
    SQL点点滴滴_判断字段或者字符中是否包含有特殊字符
    SQL点点滴滴_公用表表达式(CTE)递归的生成帮助数据
    【Oracle】Update方法
    SQL点点滴滴_DELETE小计
  • 原文地址:https://www.cnblogs.com/BigWrite/p/14349264.html
Copyright © 2011-2022 走看看