Redis持久化AOF与RDB(垃圾笔记别进来)

178 阅读2分钟

前言

这就是我用来自己看的,没啥有用的内容,大佬们看见这可以推出避免浪费自己的学习时间

RDB

  • 以快照形式存入磁盘
  • 文件后缀为dump.rdb

产生快照方式

  • save
    • 主进程执行,会阻塞redis服务,知道RDB过程完毕才能执行其他操作
  • bgsave
    • fork创建一个子进程来进行RDB,不影响redis的其他服务
  • 自动化
    • 配置文件配置触发Redis的持久化条件
      • save m n:m秒内修改了n次数据触发bgsave
  • 主从架构
    • 从机同步数据时,发送sync给主机执行同步操作,master主服务器执行bgsave

优缺点

  • 优点:
    • 生成二进制文件,占用内存小
    • 使用灾难恢复,恢复大数据的效率比AOF高
  • 缺点:
    • fork子进程在执行RDB过程中修改的数据不会被保存,会丢失数据

AOF

  • 以追加文件的方式存储,文件名:append only file
  • 每一次修改都会记录,等重启时重新执行记录的操作命令

同步方式

  • appendfsync always
    • 每次有数据修改都会写入AOF
  • appendfsync everysec
    • 每秒钟同步一次
  • appendfsync no
    • 不同步,由操作系统调度

rewrite重写

  • rewrite可以将AOF文件进行重写,省略无效命令,合并多条重复命令
  • 触发设置
    • 手动触发
      • 直接调用bgrewriteaof命令
    • 自动重复啊
      • auto-aof-rewrite-min-size:运行AOF重写时文件最小体积,默认为64MB,当达到64MB时自动触发rewrite重写
      • auto-aof-rewrite-percentage:当前AOF文件和上次重写AOF文件时的大小比值,当达到比值时触发重写
  • Redis4.0之后的rewrite
    • 支持混合模式,将写入AOF的操作命令用RDB持久化方式转为二进制压缩空间,当AOF文件达到了重写触发条件时再进行重写

优缺点

  • 优点:
    • 数据更安全
  • 缺点:
    • AOF文件通常比RDB文件大

    • 恢复时间比RDB慢