【学习笔记】Redis学习笔记——第11章 AOF持久化

第11章 AOF持久化

服务器添加指定数据库命令后,将命令写入AOF文件。

11.1 AOF持久化的实现

11.1.1 命令追加

会先将命令追加到redisServer缓冲区的末尾。

11.1.2 AOF文件的写入与同步

在Redis的循环任务中,会将缓冲区的AOF文件内容写入aof_buf缓冲区,但是合适写入物理文件有以下三种方式。
1>每次都将aof_buf内容写入物理文件。
2>缓冲区超过一秒未写入物理文件,则写入。
3>全权交由操作系统进行缓存写入物理文件。

11.2 AOF文件的载入与数据还原

服务器会创建一个为客户端来发送AOF中保存的命令并执行。

11.3 AOF重写

防止AOF文件体积过大,重写来去掉冗余命令。

11.3.1 AOF重写的实现

是通过数据库的全部建值来进行重写,并不依靠之前的逻辑文件。

11.3.2 AOF后台重写

1>AOF用子线程来重写文件,在重写时子线程会使用数据副本进行重写,所以不会产生锁的情况,Redis可以继续处理客户端请求。
(PS:使用数据副本难道不会导致内存占用变成原来的两倍吗??感觉很奇怪,感觉可能是翻译或者作者的问题?希望等以后等自己进入下个阶段之后有时间有能力可以看看Redis源码来解惑)
2>在AOF重写期间,服务器收到的命令会写入AOF重写缓冲区,在AOF重写快照数据结束后,将AOF重写缓冲区的内容写入AOF文件。

相关推荐

  1. 学习笔记Redis学习笔记——11 AOF持久

    2024-07-15 04:36:02       23 阅读
  2. 学习笔记Redis学习笔记——13 客户端

    2024-07-15 04:36:02       21 阅读
  3. 学习笔记Redis学习笔记——7 压缩列表

    2024-07-15 04:36:02       22 阅读
  4. 学习笔记Redis学习笔记——9 数据库

    2024-07-15 04:36:02       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 04:36:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 04:36:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 04:36:02       58 阅读
  4. Python语言-面向对象

    2024-07-15 04:36:02       69 阅读

热门阅读

  1. LeetCode 219. 存在重复元素 II

    2024-07-15 04:36:02       23 阅读
  2. 实验05 单元测试

    2024-07-15 04:36:02       23 阅读
  3. Hash表以及put方法源码的分析

    2024-07-15 04:36:02       21 阅读
  4. 対日開発(錬体境から金丹境まで)

    2024-07-15 04:36:02       17 阅读
  5. 用python实现反向输出链表

    2024-07-15 04:36:02       27 阅读
  6. 如何评价一个AI系统

    2024-07-15 04:36:02       21 阅读
  7. 查找运行中 sql中bind variable value 绑定变量值

    2024-07-15 04:36:02       22 阅读
  8. appium 实战问题 播放视频时无法定位到元素

    2024-07-15 04:36:02       28 阅读