Redis持久化方案之AOF

使用python获取同花顺免费版和同花顺远航版自选股数据用于量化交易 在做量化交易时,有时需要在盘中实时监控同花顺自选股的数量,以便灵活地自定义提醒、捕捉买卖时点等。那么,如何使用python获取同花顺自选股数据呢? 阅读详情

一 概述

AOF(Append-Only-File)持久化,保持写状态,通过保持Redis的写状态来记录数据库的增量指令,RDB相当于备份数据库状态,而AOF是备份数据库接收到的指令,所有写入AOF中的命令都是以Redis的协议格式来保存,在AOF的持久化文件中,数据库会记录下所有变更数据库的命令,除了指定数据库的查询命令,其他的命令都是来自客户端请求,这些命令会以追加即(append)的形式保存在文件中。

二 AOF配置与解析

appendonly no //由Redis的配置可知,AOF持久化方式默认是关闭的

appendonly yes //开启AOF持久化方式的命令

appendfilename "appendonly.aof" //配置文件中指定的文件名

AOF文件内容写入方式的配置

appendfsync always //一旦缓存区的内容发生变化,会及时的将缓存区的内容写入持久化文件中

appendfsync everysec //默认方式,每隔一秒,将缓存区变化的内容写入持久化文件中,此处基于性能和安全性的考虑

appendfsync no //指AOF持久化文件的写入操作由操作系统来决定,为了效率,操作系统会等到缓存区被填满才将缓存区内的内容持久化到磁盘中

AOF持久化方式为纯追加的持久化方式保存增加的指令,所以遇到突然断电的情况时,也会尽可能的去保存追加的命令。

当然,由于追加方式,AOF操作会使得文件越来越大,如我们递归一个数据,他会将递归的过程全部保存,往往我们仅仅需要最后的递归结果,所以可以通过日志重写解决AOF文件大小不断增加的问题。

日志重写的原理为:Redis会通过fork命令来创建一个子进程,子进程会将新AOF保存到一个临时文件中,新的AOF中内容就是将当前内存数据生成对应命令,并不需要分析旧的AOF文件,或者命令合并,则主进程会将新的变动同时写如缓存和旧的AOF文件中,这样即使重写失败,也可以保证数据的安全,当子进程完成AOF的重写之后主进程会获得一个信号,然后将缓存中的指令(同一操作的最后指令)追加到子进程生成的那个新的AOF文件中,最后用新的AOF文件替换旧的AOF文件。至此就完成了一次日志重写解决AOF文件过大问题。

三 RDB与AOF并存时Redis的数据恢复

当我们的服务器系统中同时存在RDB文件与AOF文件的时,我们应该如何进行这些文件的加载以及根据这些文件的加载内容实现数据的恢复呢?

如图所示,当我们需要从上述文件中恢复数据库数据,其实只需要重启Redis服务集合,整个启动过程如上图所示。在Redis实例重启时,会使用BGSAVE持久化文件构建内容,再使用AOF重放近期的操作指令,来实现恢复重启的状态。

Redis4.0之后提供了RDB-AOF混合持久化方式,并且作为默认方式。我们知道RDB文件本质上时内存数据的全量快照,它保存创建RDB时间点的全量数据,具有创建文件小,数据创建恢复快的优点,但是由于快照的特性无法保存创建RDB文件后的增量数据。而AOF文件本质上是一份执行日志,它保存所有对Redis进行更改的指令,即增量数据也会随着这些指令写入AOF文件,其保存方式为根据appendfsync+某一参数来执行,AOF一般体积较大,从AOF文件中恢复数据的时候,需要进行日志回放,即重复AOF文件中所有指令的执行过程,所以会耗时较长。随着Redis服务运行,AOF文件会不断的扩大,我们可以调用AOF REWIRTE机制来避免避免磁盘空间被撑满。

AOF重写机制:AOF重写机制其实也是写一份全量数据到AOF文件中,然后再增加增量,全量数据是以Redis命令的格式写入,所以如果先通过RDB方式写入全量数据,然后通过AOF方式写入增量,从而提高重写和恢复速度,也可以减少文件大小,同时保证数据的完整性,能够结合RDB和AOF的优点,再RDB-AOF混合持久化方式下,子进程会通过管道从父进程读取增量数据,并缓存下来,以RDB方式保存全量数据时也会从管道读取数据,这样不会造成管道的堵塞,此时AOF的前半段是RDB方式获取的全量数据,后半段是Redis格式的增量数据,RDB-AOf混合持久化方式是比较推荐的一种Redis持久化方式,通过BGSAVE做镜像全量持久化,AOF做增量持久化。BGSAVE操作会耗费一段时间,在等待的时候,会存在数据丢失,所以配合AOF使用来解决这个问题。

阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏 阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。 阅读详情

相关推荐

从D触发器到8位SAR ADC:Cadence Virtuoso完整设计仿真指南

逐次逼近寄存器型模数转换器(SAR ADC)是混合信号集成电路中的基础架构,其核心是一个由D触发器构成的时序状态机。在数字电路设计中,D触发器常用于数据锁存、移位寄存和时钟分频,而在SAR ADC中,它恰好承担了节拍发生与结果寄存的双重角色。理解D触发器的工作机制,是掌握逐次逼近逻辑的关键前提。工程实践中,借助Cadence Virtuoso平台,可以从门级搭建SAR逻辑,并结合动态比较器与电荷重分配电容DAC,完成从原理图到瞬态仿真的全流程验证。通过FFT分析计算SNDR与ENOB,能够量化评估ADC的动

weixin_29178069的博客 285

AOF 持久化

目录1、AOF简介2、AOF 配置3、开启 AOF4、AOF 文件恢复5、 AOF 重写6、AOF的优缺点7、RDB-AOF混合持久化 1、AOF简介 Redis的持久化方式之一RDB是通过保存数据库中的键值对来记录数据库的状态。而另一种持久化方式 AOF 则是通过保存Redis服务器所执行的写命令来记录数据库状态。 比如对于如下命令:    RDB 持久化方式就是将 str1,str2,str3 这三个键值对保存到 RDB文件中,而 AOF 持久化则是将执行的 set,sadd,lpush 三个命令保存到

qq_41894786的博客 724

MacOS上VScode配置PlatformIO Core的疑难杂症与提速实战

本文详细解析了在MacOS上使用VScode配置PlatformIO Core时遇到的安装卡死、新建项目缓慢等常见问题,并提供了官方脚本安装、网络优化、命令行预下载等实用解决方案。通过环境变量配置和镜像源加速,大幅提升开发效率,特别适合ESP32等嵌入式开发场景。

weixin_42567046的博客 221

AOF 持久化详解

是把所有对内存进行修改的指令(写操作)以独立日志文件的方式进行记录,重启时通过执行 AOF 文件中的 Redis 命令来恢复数据。

氷的博客 3044

AIGC实战——变分自编码器(Variational Autoencoder, VAE)

变分自编码器通过在模型中引入随机性,并限制潜空间中的点的分布来解决自编码器存在的问题。只需进行一些微小的调整,就可以将自编码器转换为变分自编码器,从而使其成为真正的生成模型。在本节中,我们介绍了变分自编码器的基本原理,并使用 `Keras` 实现了一个变分自编码器用于生成 Fashion-MNIST 图像。

盼小辉丶的博客 1万+

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)_167

本系统主要由超市环境监测部分和商品管理部分组成。环境监测部分主控芯片采用STM32F103C8T6,主要包括温湿度传感器、烟雾传感器和空调制热开关、空调制冷开关,采集的数据通过ESP8266模块+MQTT协议上传至OneNet云平台,在OneNet云平台设计手机和电脑版本可视化页面,能够在页面上查看超市的环境信息,还能在页面上手动打开空调制热开关和空调制冷开关。商品管理部分主要由RC522-RFID读卡器、上位机组成,实现商品选购、结算、顾客的VIP会员卡注册管理等功能。

6071

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

本文介绍了Redis的AOF持久化机制,为作者在学习Redis时的笔记,特此记录,以便后续学习中能够查漏补缺。

Scr1Pt的博客 2294

使用Captum库对CIFAR数据集进行模型可解释性分析

为了训练模型,我们需要指定损失函数和优化技术。损失函数用于衡量模型的性能,在训练过程中,我们通过调整模型参数来最小化损失。本教程使用。

2501_90323865的博客 178

redis:持久化之AOF增量持久化

redis的数据正常但是存储在内存内的,如果宕机突然发生,数据就会全部丢失,因此需要提供一种方式保证redis的数据不会因为故障而丢失,这种机制就是redis的持久化机制 redis提供了两种持久化机制: RDB(Snapshot 内存快照) AOF(append only file) ...

OceanStar的博客 1050

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 292

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(一)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包

慕羽★的博客 3937

Redis教程——持久化(AOF)

可以发现,当我们执行写操作后,Redis就会在myRedis文件夹创建appendonlydir文件夹并生成三个AOF文件,当我们再次执行写操作后,三个AOF文件,只有incr的AOF发生变化。为了解决这个问题,Redis新增了重写机制,当AOF文件的大小超过所设定的峰值时,Redis就会自动启动AOF文件的内容压缩,保留可以恢复数据的最小指令集。在Redis执行写操作时,不会立刻将写操作写入AOF文件中,而是先将写命令保存在AOF缓存区,根据写入策略将所有写操作保存在AOF文件中。

2501_92669908的博客 1307

第二章:创建交互式地图

那么您应该已经有了一个安装了这些包的 conda 环境。否则,您需要创建一个新的 conda 环境并使用以下命令安装。

韩天放 4219

【图解】Redis的持久化方案—RDB持久化、AOF持久化、AOF重写

Redis的持久化方案(冷备):RDB和AOF RDB:Redis Dump Binary,把当前进程数据生成快照保存到硬盘的过程,触发RDB分为自动和手动两种方式。 手动触发:手动触发的命令:save和bgsave,两个命令都可以触发生成快照生成RDB文件,但是有区别: save:阻塞Redis的服务器进程直至RDB文件创建完成 bgsave:会由Redis主进程fork出来一个子进程,子进程会把数据集先写入临时文件,写入成功之后,再替换之前的RDB文件,用二进制压缩存储,保证RDB文件始终存储的

不是很懂 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Redis 持久化 AOF方案

Redis持久化之AOF方案 采用AOF持久方式时,Redis会把每一个写请求都记录在一个日志文件里。 在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。 AOF默认是关闭的,如要开启,进行如下配置: appendonly yes AOF提供了三种fsync配置,always/everysec/no,通过配置项[appendfsync]指定: appendf...

大数据流浪法师的学习笔记与分享 449

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Redis持久化方案RDB和AOF

当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。其实就是将存储在内存中的数据以文件的形式存储在硬盘上的。Everysec策略的同步操作是通过后台I/O线程进行的,由于是在子线程中进行,所以主线程并不会被阻塞,可以继续服务新的请求,但是内存和硬盘中的数据会有1秒的差别(不一定精准),这是一种折衷的方案,寻求了一个平衡。Always策略的同步操作是在主进程的主线程中进行的,由于fsync的阻塞特性,会导致其挂起,在此期间无法服务新的请求,因而吞吐量下降,但确实能够保证内存和硬盘中数据的一致性。

小云很优秀 1050

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Redis: RDB与AOF的选择和容灾备份以及Redis数据持久化的优化方案

1 )同时开启在我们 Redis 的服务器上,把RDB和AOF同时打开, 这样可以通过RDB快速的恢复数据,因为它是一个紧凑的缩缩的二进制文件, 但是有时 Redis 的不小心故障了,丢失了十几分钟的数据可以通过AOF来做数据的恢复, 因为它所有写命令都会记录,Redis先加载AOF文件来恢复原始数据,因为AOF数据比RDB更完整,有时候我们会把一些错误的命令也记录在文件中, 会有一些潜在的bug,可以通过 redis-check-aof 来做修复,如果AOF文件实在是用不了,恢复不了,可以把RDB作为一

Wang的专栏 1412

《Redis持久化机制对比与RDB/AOF调优方案》

Redis持久化机制对比与调优方案 Redis提供RDB快照和AOF日志两种持久化方式保障数据安全。RDB通过周期快照实现高性能备份,AOF记录写命令确保数据完整性,4.0+版本支持混合模式结合两者优势。主节点推荐AOF everysec+混合持久化,从节点建议关闭持久化。电商等高并发场景可关闭RDB,采用AOF每秒刷盘。关键调优包括:监控fork延迟、定期备份验证、主从差异化配置。注意持久化不等于备份,需建立独立灾备方案,定期测试恢复流程。不同场景需权衡性能与数据安全,选择适合的持久化策略组合。

qq_43414012的博客 2348

Redis持久化方案之RDB和AOF

为什么需要Redis持久化 因为Redis的数据都保存在内存里,当发生宕机的时候,内存里数据就会丢失,所以需要一种机制来实现不丢失数据。 Redis的持久化机制有两种:RDB快照和AOF日志。 RDB快照 快照是一次的全量备份、是内存数据的二进制序列化。 Redis使用COW机制来实现快照持久化。 Redis会 fork一个子进程,子进程来处理快照持久化工作,子进程共享父进程的代码段和数据段,子进程不会修改内存的数据结构,只是遍历读取序列化写入磁盘中。父进程需要响应客户端的请求,会对内存的数据结构进行修改,

凯凯王的技术生涯 221

Redis 持久化方案:RDB与AOF

关闭redis时,会将内存中的数据持久化到硬盘,同步数据; 启动redis时,会从硬盘加载数据到内存。 平时也要将内存的数据同步到硬盘,redis提供了2种持久化方案:RDB、AOF RDB RDB是redis默认使用的持久化方案,隔一段时间同步一次,使用快照保存内存中的数据。 打开redis.conf,搜索rdb即可找到RDB相关配置: RD...

chenhongyong 127

Redis的持久化方案,RDB和AOF详解

目录 一.Redis持久化方案(RDB和AOF) 1.1 RDB(Redis DataBase) 1.1.1 原理介绍 1.1.2 触发快照的机制 1.1.3 RDB快照文件压缩方式 1.1.4 关于RDB的配置 1.2 AOF(Append Only File) 1.2.1 原理介绍 2.1.2 AOF同步策略 2.1.3 AOF重写策略 2.1.4 AOF重写条件 ...

Anakki的博客 676

配置方案:Redis持久化RDB和AOF

Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘。当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。 Redis提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF。 RDB持久化可以在指定的时间...

开心的小包子 1880

Redis AOF持久化:实时数据持久化方案解析

Redis AOF持久化机制通过记录写命令实现数据持久化,支持三种写入方式(always、everysec、no)以平衡性能与数据安全。配置时需修改redis.conf文件,开启appendonly并设置同步策略。AOF文件会随时间增大,可通过BGREWRITEAOF命令或自动重写机制优化。常见问题包括文件过大和重写失败,需检查磁盘空间和日志排查。该机制为Redis提供了可靠的数据恢复能力,是保障数据安全的重要方案。

fykam的博客 609

Redis持久化方案RDB和AOF分析

Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。 RDB 详解 RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。 触发RDB快照 1 在指定的时间间隔内,执行指...

咸鱼的博客 353

(三)Redis持久化,你真的懂了吗?万字分析AOF和RDB的优劣 AOF的刷盘、重写策略 什么叫混合重写 MP-AOF方案是什么

MP-AOF,全称Multi Part AOF,也就是多部件AOF,通俗点说就是原来是一个AOF文件,现在变成了多个AOF文件的配合。MP-AOF文件核心有两个Part组成:1.BASE AOF文件,基础AOF文件,记录了基本的命令2.INCR AOF文件,记录了在重写过程中新增的操作命令。

weixin_45322373的博客 1411
上一篇: Redis的数据实现主从同步的机制
下一篇: Redis中的Pipeline
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值