zoukankan      html  css  js  c++  java
  • Redis 持久化

    Redis持久化

    Redis有两种方式做持久化(RDB,AOF)

    1. RDB(快照)
      • RDB恢复机制(只需将RDB文件放在我们Redis启动目录就可以了,Redis启动的时候会自动检查恢复其中的数据)
      • RDB触发规则
        • Save 触发
        • flushall 触发
        • 退出 redis 触发
    2. AOF(所有命令记录)
      • 恢复机制同上
      • 原理:把所有命令记录存在AOF中(默认的文件名 append only.aof)
      • 修复AOF工具 (命令行:redis-check-aof-fix '文件名')
      • 重写规则:conf里面有一个语句 auto-aof-rewrite-min-size 64mb (aof文件大于64mb的时候会重写一遍  这个数值可以在 conf里面去配置)
        • 每秒同步一次Aof
        • 每次修改都同步一次Aof
        • 从不同步

    各自的优缺点

    RDB 优点:

      前提 对数据的完整性要求不高 适合大规模的数据恢复

       缺点:

      需要一定时间间隔进行操作,如果Redis意外宕机了最后一次修改的数据就没有了,Fork子进程的时候会占用一定的内存空间

    AOF 优点:

       数据只会丢失两秒内的数据

       缺点:

       数据文件大小 aof>rdb,修复的速度比rdb慢

       运行效率 aof 慢于 rdb

       如果aof 文件有错误,这时候redis 是启动不了的

    AOF , RDB 同时开启 启动Redis时会优先加载AOF文件(安全性更好)

    性能建议

      RDB 只保留 conf 里边 Save 900 1( 表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件 )

      AOF只会丢失不超过两秒的数据,但是带来了持续的IO,rewrite 过程中产生的数据写到新文件 造成的阻塞几乎不可避免

      使用主从 +RDB 主从同时宕机 会丢失十几分钟的数据 启动脚本 要比较 RDB文件选取最新的那个 

    。net工程师
  • 相关阅读:
    Java基础(十四)——API(Calendar类、System类、StringBuilder类、包装类)
    异常
    Java基础(十三)——权限修饰符和内部类
    知识点总结
    Java基础(十二)— —多态
    Java基础(十一)— —继承、抽象类和接口
    java基础(十)——继承
    小程序外部向组件内部传递externalClasses -- 传入样式wxss
    小程序组件交互 -- 传入js
    promise封装小程序的请求类(request,清爽易懂)
  • 原文地址:https://www.cnblogs.com/yuners/p/14352290.html
Copyright © 2011-2022 走看看