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

      

  • 相关阅读:
    李宏毅机器学习课程笔记-6.1神经网络训练问题与解决方案
    PAT甲级1055The World's Richest
    PAT甲级1028List Sorting
    PAT甲级1025PAT Ranking
    PAT甲级1016Phone Bills
    五边形数
    组合计数
    [编程题] lc三数之和 (借助哈希表)
    [编程题] 基础:如何使用大顶堆和小顶堆找topN
    [编程题] lc [剑指 Offer 54二叉搜索树的第k大节点----或者是求第K小元素]
  • 原文地址:https://www.cnblogs.com/BigWrite/p/14349264.html
Copyright © 2020-2023  润新知