• AOF持久化


    AOF持久化是通话记录执行的命令进行存储的

    AOF持久化的事先可以分为

    (1)文件追加,新写入的命令都会被追加到redisserver的aof_buf缓冲区里面。

    在服务器每一次执行事件循环的时候都会判断是否需要写入同步aof文件

    这取决于服务器的配置

    appendfsync值

    always每一次都需要写入并且同步到AOF文件

    安全,效率满

    everysec 写入aof文件,如果距离上一次同步的超过一秒,那么就同步

    效率提高,但是可能丢失1秒的数据

    no,只写入,至于什么时候同步由操作系统决定

    文件的写入和同步:

    现在为了提高效率,写入文件的时候,通常会将数据写入一个内存缓冲区中,满的时候同步到磁盘里面,这样虽然提高了效率,但是安全也不保障不了的

    AOF文件的载入,需呀创建一个不带网络链接的为终端,用来执行AOF命令

    AOF重写

    为了解决aof文件的大的问题,我们需要通过BGREWRITEAOF进行重写,他不是通过读取旧的AOF文件,而是通过读取数据库进行创建新的AOF文件

    但是这个过程我们需要创建一个进程

    (1)这样可以复制父进程的数据,两个进程不会进行资源的争夺

    (2)防止server阻塞

    但是在重写的时候,新写入的命令怎么处理,这样我们引入了一个重写缓冲区,在执行重写的过程中,我们需要将client发来的命令发送到重写缓冲区

    所以在子进程执行重写的过程中,我们需要做3件事

    (1)sever执行client的请求并恢复

    (2)将命令追加到aof缓冲区里面

    (3)追加重写缓冲区

    当子进程执行结束后,会给父进程发送一个信号,这个时候我们将重写缓冲区的名ing重新追加到新的AOF文件中,这个时候我们将新deAOF文件原子性的覆盖就得AOF文件

  • 相关阅读:
    Web前端学习第五天——————HTML篇.019页面布局练习
    1111
    开发者如何利用数据分析提高收入
    开发者进行广告合作的几大误区
    高仿人人Android梦想版终极源码发送(转)
    移动开发者如何获取免费流量
    Inno setup常用代码【收藏】
    Inno setup常用代码补充【收藏】
    QT for Window程序部署
    Inno Setup自定义卸载文件名称【收藏】
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/7075518.html
Copyright © 2020-2023  润新知