redis持久化方式之AOF详解

Debian 11 下用hostapd+dnsmasq搭建WiFi热点:从命令行到实战(避坑指南) 本文详细介绍了在Debian 11系统上,使用hostapd和dnsmasq从命令行搭建稳定WiFi热点的完整实战流程。内容涵盖环境准备、无线网卡AP模式检查、服务深度配置,并重点提供了从服务启动失败到客户端无法上网等常见问题的系统性排错指南,帮助用户避开配置陷阱,成功创建可用的无线接入点。 阅读详情

1.什么是AOF

AOF--append only file,字面的意思是"仅追加文件"。其实AOF指的是redis在持久化的时候,每次需要记录的是redis中除了读之外的所有指令,每次将这些指令添加到aof文件中,不允许进行进行除添加之外的任何操作。在redis.conf文件中appendfsync参数用来设置aof文件被写入的策略,一边appendfsync有如下几种策略:

(1)always,表示只要缓冲区中数据发生更改,则就将该数据写入到aof文件中;

(2)everysec,每秒写入把缓冲区中数据写入aof文件中(redis默认);

(3)no,不做任何策略配置,将策略的配置交给操作系统,一般操作系统是等待缓冲区被占完之后,将数据写入aof文件中。

 

2.AOF持久化方式的原理

实际上,redis底层并不是向上述描述那样,实实在在地把每一条指令都进行记录到磁盘中,这样做明显记录的指令的数量就十分庞大,举一个例子 set keyy 1,比如我们现在需要将keyy的值从1加到100,假设redis服务器执行了99次完成了任务,根据前面描述的策略,则aof将被写入99次,这样明显太傻,是不是可以进行一次写入,直接set keyy 100,这样所占磁盘大小必然是很小的。----当时是有着策略的,这就是AOF的重写策略,它解决AOF文件不断增加的问题。

AOF的重写策略描述如下图:

 

首先需要介绍下CopyOnWrite原理,就是写时复制。其基本策略就是,假设一个父线程和子线程同时对共享数据进行操作,如果数据没有发生改变,父线程和子线程仅仅是进行单纯的读操作,那么共享数据不发生改变,维持现状;但是如果共享数据发生来改变(某线程进行了写操作),那么将会生成一个数据的复本供父线程使用。

下面介绍上述AOF重写过程:

(1)首先redis服务fork出一个子进程,该子进程的主要目地就是不依赖已存在的AOF文件,仅仅通过redis中已有的数据生成新的AOF文件;

(2)主进程将实时的redis中的数据变动写入AOF缓冲区(这个数据是要写入老AOF文件中的)和重写缓冲区;

(3)子进程通知主进程完成对旧数据的AOF重写;

(4)主进程现在将重写缓冲文件添加到子进程完成重写之后的AOF文件之后,形成新的AOF文件,替代老的AOF文件

流程图:

3.AOF持久化方式的优缺点

虽然说AOF持久化方式是一种优良的持久化方案,但是也不是说AOF持久化方式是完美无暇的,其优缺点如下:

优点:AOF持久化方式相比于RDB来说,可读性高(保存的是代码,可读性好),适合保存增量数据,数据不易丢失

ps:为什么数据不容易丢失?因为数据被保存在内存中的AOF缓冲区中,数据不易丢失。

缺点:保存基本上所有redis除读之外的代码,保存的文件大,恢复数据需要重写执行所有的代码,恢复的时间长。

机器人中的数值优化(十五)——PHR增广拉格朗日乘子法 本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例 阅读详情

相关推荐

VM与欧姆龙PLC通讯设置实战:Fins TCP/UDP协议详解

本文详细解析了VM(VisionMaster)与欧姆龙PLC通过Fins TCP/UDP协议进行通讯的实战设置。内容涵盖网络配置、协议选择(TCP可靠性与UDP实时性)、VM端地址映射与数据点添加、以及数据接收解析流程,并提供了常见错误排查与高级调试技巧,帮助视觉与自动化工程师快速实现稳定可靠的工业通讯集成。

weixin_29172963的博客 327

AOF是什么?

AOF是什么?

x2656271356的博客 5067

英飞凌AURIX™ Development Studio(ADS)工程调试与烧录实战指南

本文详细介绍了英飞凌AURIX™ Development Studio(ADS)的工程调试与烧录实战指南。从调试环境搭建、硬件连接到断点设置、变量监控等核心调试技巧,帮助开发者快速掌握ADS安装使用教程,提升多核处理器开发效率。

k8l9m0n的博客 573

AOF 持久化详解

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

氷的博客 3044

Livox MID360与Fast-LIO2的实战部署指南:从驱动安装到点云处理

本文提供Livox MID360激光雷达与Fast-LIO2激光惯性里程计从零开始的实战部署指南。详细介绍了Ubuntu系统下的驱动安装、网络配置、点云数据验证以及Fast-LIO2算法的编译、参数配置与联合启动流程,帮助开发者快速搭建移动机器人SLAM系统,并包含关键参数调优与常见故障排查方法。

java5的博客 1024

内存设计指南:01 Xilinx DDR4 design guide解析

最近有很多网友咨询FPGA DDR4为什么速率总是上不去的问题,发现他们的设计确实很随意,都没有遵守一些手册的基本要求,所以今天和大家一起重新读一读DDR4 design guide,看看哪些要求是一定不能忽略的。首次设计一款新的芯片或者内存方案时,可能会无从下手。对于内存设计,官方指导首推JEDEC规范,每一代内存推出时,在JEDEC官网均能找到对应的规范文档、各种内存形式的说明文档如DDR4-JESD79、DDR4 SDRAM UDIMM Design Specification以及内存条DEMO等。

halee_00的博客 3302

【Redis学习笔记(七)】之 AOF持久化详解

本文章由公号【开发小鸽】发布!欢迎关注!!! 老规矩–妹妹镇楼: 一. AOF持久化 (一) 概述        除了RDB持久化功能,Redis还提供了AOF持久化功能,通过保存Redis服务器所执行的写命令来记录数据库状态。被写入AOF文件的所有命令都是以Redis的命令请求协议格式保存的,服务器在启动时,可以通过载入和执行AOF文件中保存的命令来还原服务器关闭之前的数据库状态。 (二) AOF持久化的实现     &nbsp

开发小鸽 424

23种设计模式-代理(Proxy)设计模式

软考中级-软件设计师 代理设计模式

片言可决讼,半纸能缚龙 1783

什么是 AOF 重写?AOF 重写机制的流程是什么?

AOF (Append Only File)是 Redis 持久化的一种方式,其通过记录 Redis 执行的每一条命令,重启之后通过重新执行 Redis 中的命令来恢复数据。不过,随着 Redis 执行命令的不断增多,AOF 文件越来越大,但是很多数据其是不一定都是有意义的,比如原来 set age 10,后面又来个 set age 18,然后又来个 set age 30,我们这个时候就会发现,只有最后一个 age 是有意义的,前面都是没有用的。

2401_84419325的博客 3034

2024年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++小学组:带解析)

2024全国青少年信息素养大赛C++算法创意实践挑战赛初赛真题及解析

王老师青少年编程 2808

GLM-4本地部署的实战教程

本文主要介绍了GLM-4-9B本地部署的实战教程,希望对学习和使用大模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 下载模型文件 3. 运行glm-4-9b-chat

herosunly的博客 25万+

Redis持久化AOF&RDB区别是什么?

Redis提供RDB和AOF两种持久化方式。RDB通过定时将内存数据dump到磁盘上的二进制文件实现持久化,适合大规模数据备份和灾难恢复,但可能丢失最后一次快照后的修改。AOF则记录每个写操作,以日志形式追加到文件中,数据安全性更高,但恢复速度较慢且文件会逐渐增大。两种方式各有优缺点,可根据具体需求和性能要求选择,甚至同时使用以确保数据安全和可靠性。

技术铺掌柜 3437

ContextCapture系列教程(三):大疆精灵4RTK版无人机POS数据提取、处理(处理后勉强达到免相控要求)

大疆精灵 Phantom 4 RTK于2018年发布,是大疆为高精度建图与精准飞行设计的行业级无人机,在精灵4无人机外形的基础上,机身增加了RTK模块,可以实现高精度 RTK 定位导航,相机与 RTK 系统采用微秒级时间同步,可以通过app 进行航线规划飞行

pausau的博客 1万+

Redis 持久化——AOF 详解

Redis 是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中有可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称数据库状态。 Redis 是内存数据库,它将自己的数据库状态储存在内存里,如果不想办法将储存在内存中的数据库状态保存到磁盘里,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解这个问题,Redis 提供了两种持久化方式——RDB(Redis DataBase) 和 AOF(Append Only File),.....

白开水的博客 3万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Redis】Redis持久化之AOF详解(Redis专栏启动)

本文为Redis持久化系列第二篇,本文讲解兼具广度与深度,首先讲解什么是RedisAOF、如何开启AOF持久化,深入其AOF的原理,AOF持久化实现、AOF数据恢复、AOF三种写回硬盘策略、AOF重写机制,解析RedisAOF要先执行命令后写日志,以及在实战过程中AOF和RDB对比​​​​​​​,最后扩展Redis4.0新特性的混合持久化模式。

小明的Java问道之路 7913

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

redis持久化之AOF详解

本篇主要学习了AOF的实现原理,其中关于操作系统的一些知识还是很值得去加深理解的!

lans_g的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Redis】—— Redis的AOF持久化机制

💧AOF持久化是Redis提供的一种持久化机制,它将Redis服务器接收到的每个写命令追加到一个文件中,这个文件称为AOF文件。通过将写命令追加到文件末尾,AOF持久化记录了对数据库所做的每个更改操作。💧Redis重启时,可以通过重新执行AOF文件中的所有写命令来还原数据集的状态,从而实现数据的持久性。

仰望天空,妳我亦是行人. 2338

Redis持久化之RDB和AOF

我们知道Redis是内存数据库,数据都加载在内存中,但是数据也是需要持久化到磁盘中的,如果不保存到磁盘中,那万一Redis服务器重启了,那数据不就丢了吗?所以持久化就是将内存中的数据保存到磁盘里众所周知,Redis的持久化有2种方式,分别是RDB和AOF,下面就讲下这两种方式的区别。

qq_40853117的博客 3210

[Redis][持久化][下][AOF]详细讲解

[Redis][持久化][下][AOF]详细讲解

SnowK博客 4526

Redis的持久化RDB和AOF详解

Redis 是基于内存的数据库,为了防止数据丢失,需要将内存中的数据持久化到磁盘。持久化机制主要有RDB和AOF两种。RDB 持久化是将 Redis 在某一时刻的内存数据快照保存到磁盘文件中;AOF 持久化是将 Redis 执行的写命令追加到文件末尾。

1加1等于的博客 1499

彻底搞懂Redis持久化之AOF原理

编程界的小学生一、什么是AOF二、优缺点1、优点2、缺点三、AOF原理1、基础原理2、额外扩展四、REWRITE1、为什么要rewrite?2、4.0版本之前的rewrite3、4.0版本以及之后的rewrite4、rewrite触发条件1、手动触发2、自动触发3、触发满足条件5、rewrite原理五、RDB-AOF混合持久化1、优点2、缺点3、原理4、数据恢复六、总结七、个人公众号 为什么需要...

【原】编程界的小学生 6810

Redis 持久化机制,以及RDB和AOF的详解

两种持久化方案既可以同时使用(aof),又可以单独使用,在某种情况下也可以都不使用,具体使用那种持久化方案取决于用户的数据和应用决定。无论使用AOF还是快照机制持久化,将数据持久化到硬盘都是有必要的,除了持久化外,用户还应该对持久化的文件进行备份(最好备份在多个不同地方)。

qq_63438013的博客 1050

Redis持久化之RDB和AOF详解

RDB 持久化利用了操作系统的 fork 和 Copy-on-Write 技术来实现数据的安全持久化。主进程在执行写操作时会进行内存页的复制,以保证主进程和子进程在写操作时不会相互影响。这种机制使得 Redis 在执行 BGSAVE 时能够保持高效和安全,确保数据在持久化到磁盘后的一致性和可靠性。

m0_74293254的博客 2150

【Redis】AOF持久化的实现与原理

从持久化的需求出发,详细介绍了AOF持久化的实现原理以及重写机制的原理。

LYQ的博客 1658

Redis持久化:RDB和AOF机制详解

为什么需要持久化?Redis持久化有哪些方式呢?为什么我们需要重点学RDB和AOF? 看了这篇文章,详细你一定有所收获

zhaolk的博客 4558

Redis持久化——AOF机制详解

Redis提供了RDB和AOF的持久化选项。本文主要介绍AOF的核心概念、同步步骤、保存模式、AOF重写详解及AOF的优缺点,还介绍了RDB和AOF混合方式的运行机制。AOF(Append Only File):以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的

若明天不见 2350
上一篇: 快速排序
下一篇: trim()函数去掉了什么?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值