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文件

AOF持久化的更多相关文章

  1. redis的 rdb 和 aof 持久化的区别 [转]

    aof,rdb是两种 redis持久化的机制.用于crash后,redis的恢复. rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个d ...

  2. redis的 rdb 和 aof 持久化的区别

    aof,rdb是两种 redis持久化的机制.用于crash后,redis的恢复. rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个d ...

  3. 对比 Redis 中 RDB 和 AOF 持久化

    概念 Redis 是内存数据库,数据存储在内存中,一旦服务器进程退出,数据就丢失了,所以 Redis 需要想办法将存储在内存中的数据持久化到磁盘. Redis 提供了两种持久化功能: RDB (Red ...

  4. Redis的RDB和AOF持久化

    RDB 持久化:在指定的时间间隔内生成数据集的时间点快照. AOF 持久化:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. RDB 它只保存了 Redis 在某个 ...

  5. Redis之RDB和AOF持久化介绍

    什么是数据库状态 redis是一个键值对的数据库服务器,服务器中通常包含中任意个非空的数据库,而每个数据库又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及他们的键值对统称为数据库状 ...

  6. Redis中RDB和AOF持久化区别和联系

    RDB和AOF持久化   ​RDB持久化 RDB是什么? 原理是redis会单独创建(fork) 一个与当前进程一模一 样的子进程来进行持久化,这个子进程的所有数据(变量.环境变量,程序程序计数器等) ...

  7. Redis 详解 (七) AOF 持久化

    目录 1.AOF简介 2.AOF 配置 3.开启 AOF 4.AOF 文件恢复 5. AOF 重写 6.AOF的优缺点 上一篇文章我们介绍了Redis的RDB持久化,RDB 持久化存在一个缺点是一定时 ...

  8. redis的rdb与aof持久化机制

    Redis提供了两种持久化方案:RDB持久化和AOF持久化,一个是快照的方式,一个是类似日志追加的方式 RDB快照持久化 RDB持久化是通过快照的方式,即在指定的时间间隔内将内存中的数据集快照写入磁盘 ...

  9. Redis - 2 - 聊聊Redis的RDB和AOF持久化 - 更新完毕

    1.RDB 1.1).RDB是什么? RDB,全称Redis Database RDB是Redis进行持久化的一种方式,当然:Redis默认的持久化方式也是RDB 1.2).Redis配置RDB 1. ...

  10. Redis学习笔记(九) AOF持久化

    除了RDB持久化功能之外,Redis还提供了AOF持久化功能.与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的. 服务 ...

随机推荐

  1. 布隆(Bloom)过滤器 JAVA实现

    前言 Bloom过滤器,通过将字符串映射为信息指纹从而节省了空间.Bloom过滤器的原理为,将一个字符串通过一定算法映射为八个Hash值,将八个Hash值对应位置的Bitset位进行填充.在进行校验的 ...

  2. Oracle_insert_delete_update

    Oracle_insert_delete_update --复制表格的结构 create table temp as (select * from emp where 1=2); select * f ...

  3. 本地phpstudy时常停机连接失败,php.ini文件中9000端口问题

    2018/01/05 13:35:07 [error] 20508#19380: *1 WSARecv() failed (10054: An existing connection was forc ...

  4. 在form里面,放了四个UEditor,怎么在后台分别获取它们值

    1) 默认情况下提交到后台的表单名称是 "editorValue",在editor_config.js中可以配置,参数名为textarea. 2) 可以在容器标签(即script标 ...

  5. ecshop_标签大全

    admin 后台功能 -------templates后台模板 data 上传文件.SQL备份文件.配置项 ------sqldata 数据库备份文件 ------config.php配置文件 inc ...

  6. 版本控制——TortoiseSVN (3)多版本发布

    =================================版权声明================================= 版权声明:原创文章 禁止转载  请通过右侧公告中的“联系邮 ...

  7. jQuery时间格式插件-moment.js的使用

    jQuery时间格式插件-moment.js的使用 moment.js插件的使用,使用之前在页面引入对应的js文件: 详细的操作可见moment中文官网:http://momentjs.cn/ 日期格 ...

  8. 【转】WPF 从FlowDocument中找到Hyperlink

    原文地址:How can I get a FlowDocument Hyperlink to launch browser and go to URL in a WPF app? #region Ac ...

  9. 解决vue路径中#号

    在router文件夹下的js文件中,更改配置增加 mode: 'history'; vue-router官方文档:https://router.vuejs.org/zh-cn/essentials/h ...

  10. 【处理多服务器日志合并处理问题】多服务器的日志合并统计——apache日志的cronolog轮循

    转发:http://www.chedong.com/tech/rotate_merge_log.html   内容摘要:你完全不必耐心地看完下面的所有内容,因为结论无非以下2点:1 用 cronolo ...