AOF
AOF
基础概念
以日志的形式记录了每个写操作
在redis重新运行时,会将这些操作重新执行一遍
文件形式:appendonly.aof
开启AOF需要更改配置文件:appendonly:yes
AOF主要流程
用户--->redis--->aof缓存区---->aof
aof--->redis
三种写回策略
- always
- 优点:同步写回,数据基本不丢失
- 缺点:反复IO,性能影响大
- everysec
- 优点:性能适中
- 缺点:宕机时丢失1秒内的数据
- no
- 优点:性能好
- 缺点:依赖操作系统控制写回,数据丢失风险大
AOF功能开启的配置
6vs7
生成文件地址:
- 6是直接和rdb同目录(即我们配置好的dir)
- 7改变为在该dir之后又有一个子文件夹/appendonlydir然后存放在子文件夹中
aof文件类型:
- 6有且仅有一种
- 7有了三种,base aof和incr aof和history aof(由base和incr变化而来,在重新写回后,这次写回之前对应的base和incr成为history,history类型的aof会被redis自动删除)
- 同时为了管理这些aof,该子文件夹下还有个manifest(清单)文件来管理这些aof
异常恢复
linux执行redis-check-aof --fix 对应的incr.aof
即可恢复,由于他由对应的语法格式,所以应该是删除不符合语法规则的语句
最差情况,要么丢失一条修改操作,要么丢失一秒的操作
aof的优缺点
寻道问题:
寻道是指在文件中查找特定的命令。Redis的AOF持久化机制不需要寻道,因为它是将命令追加到文件末尾,而不是在文件中查找特定的命令。
优势
- 性能高
- 可以回滚到之前的版本(可做紧急恢复)
- 更好地保护数据不丢失
劣势
- 相同情况下aof文件比rdb文件占用空间大,aof文件加载进内存的速度没有rdb文件快
- aof运行效率慢于rdb,每秒同步策略效率较好,不同步效率与rdb相同(就是那三种写回策略,毕竟你aof间隔一小会时间就要写入硬盘,可定效率慢)
触发AOF重写
- 满足自动触发条件(默认是上次重新进度为100%且incr aof文件达到64mb才可以)
- 手动:bgrewriteaof
AOF重写机制重要原理
由于弹幕中,频繁弹到阳哥可能说的有误,所以这边是看官网总结的(7版本)
- 当AOF重写时,Redis父进程会打开一个新的incrAOF文件来记录新的写入操作
- 子进程会执行原定的重写逻辑并生成新的baseAOF
- 在这过程中Manifest文件也开始跟踪新的base和incr
- 当他们准备好时,会进行替换操作(即之前的base和incr成为history版本,被新版本替换掉,同时数字部分会叠加),使manifest文件生效
为了避免因AOF重写重复失败和重试而创建许多增量文件的问题,Redis引入了AOF重写限制机制,确保失败的AOF重写将以越来越慢的速度重试。
AOF的更多相关文章
- Redis之AOF备份
redis在进行备份的时候有2种方式:1.RDB:2.AOF:现在主要讲哈AOF的备份 1.找到redis.config配置文件,大部分下载下来和redis-service同目录: 2.打开redie ...
- redis持久化RDB和AOF
Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...
- Redis两种持久化方式(RDB&AOF)
爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...
- Redis的AOF是怎么实现的
今天通过阅读AOF的实现代码,牵出了许多本来不是必须的话题,也都记下来先: Redis自己搞了一套事件循环机制: http://itindex.net/detail/26944-redis-%E4%B ...
- Redis的持久化的两种方式drbd以及aof日志方式
redis的持久化配置: 主要包括两种方式:1.快照 2 日志 来看一下redis的rdb的配置选项和它的工作原理: save 900 1 // 表示的是900s内,有1条写入,则产生快照 save ...
- redis的 rdb 和 aof 持久化的区别 [转]
aof,rdb是两种 redis持久化的机制.用于crash后,redis的恢复. rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个d ...
- RBD和AOF持久化对比
RDB和AOF持久化对比 Redis提供了RDB持久化和AOF持久化,本篇文章中将会对这两种机制进行一些对比 RDB机制的优势和略施 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘. ...
- Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...
- 实验验证redis的快照和AOF
安装配置redis http://www.cnblogs.com/myrunning/p/4222385.html 验证redis的主从复制 http://www.cnblogs.com/myrunn ...
- redis 持久化 如果 AOF 文件出错了,怎么办?
服务器可能在程序正在对 AOF 文件进行写入时停机, 如果停机造成了 AOF 文件出错(corrupt), 那么 Redis 在重启时会拒绝载入这个 AOF 文件, 从而确保数据的一致性不会被破坏. ...
随机推荐
- echarts常见问题及解决方法
https://blog.csdn.net/weixin_46928381/article/details/122875609
- UNI-APP 使用Echart
UNI-APP 使用Echart(含地图教程) https://blog.csdn.net/weixin_43548442/article/details/121468189 uniapp使用echa ...
- C# 开发桌面应用简单介绍
一. C#使用场景介绍 C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言.运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言. 二. 开发 ...
- windows无法远程访问liunx的mysql解决方案(8.0.27版本)
一.安装后mysql后发现windows上的无法正常访问,报错如下: 不管是navicat软件,还是使用python的pymsql进行连接 1.navicat软件如下:"Access den ...
- 昆虫科学院 AtCoder Race Ranking 2023 Autumn
概况 为提高选手们的训练 / 比赛热情,我们(昆虫科学院)通过商讨,在 \(2023-5-25\) 仿照 AtCoder Race Ranking (WTF) 机制,设立了"昆虫科学院 At ...
- 安装MicroStation软件、Terrasolid插件的方法
本文介绍在Win10电脑中,安装MicroStation软件与Terrasolid插件合集的详细方法. 首先,我们需要有MicroStation软件与Terrasolid插件合集的安装包:这些 ...
- 如果诸葛亮会编程,用Java写出师表...
继上一篇 "如果诸葛亮用C#写出师表..."后,站长想自己的第一语言是Java,虽然平时工作上用的不多,也用Java实现一遍吧,改改就是了,无非就是: C#的Console.Wri ...
- 05-Verilog基础语法_4
Verilog基础语法 Mixed Model(混合设计模型) System Tasks(系统任务,系统函数) 用随机数驱动验证 fd = $fopen("文件路径及文件名") / ...
- FileZilla 连接不上宝塔
1,修改 pureftp的配置文件 ForcePassiveIP 为服务器的ip , 并去掉 # 2,FileZilla 使用明文连接
- [转帖]使用MAT命令行工具生成堆dump分析文件
https://www.cnblogs.com/hellxz/p/use_mat_linux_command_line_generate_reports.html 写作目标 Java程序运行过程中,难 ...