【Redis】AOF日志

目录

  • 1、背景
  • 2、工作原理
  • 3、核心配置参数
  • 4、优缺点
  • 5、AOF文件内容

1、背景

AOF(Append Only File)是redis提供的持久化机制之一,它通过记录所有修改数据库状态的写命令来实现数据库持久化。与RDB(快照)方式不同,AOF记录的是操作过程而非数据状态。

2、工作原理

AOF的工作原理如下:

1、命令记录:当AOF开启时,redis会将每个写命令追加到AOF缓冲区
2、文件同步:根据配置策略将缓冲去内容写入AOF文件
3、文件重写:定期执行AOF重写以压缩文件大小

3、核心配置参数

AOF在redis.conf的相关配置如下:

[root@xxx]# cat /xxx/redis.conf | grep -E 'append|auto-aof'
appendonly yes #启用AOF持久化
appendfilename "xxx" #AOF文件名,没配置默认文件名为appendonly.aof
appendfsync everysec #同步策略
no-appendfsync-on-rewrite yes #控制AOF重写期间是否执行主进程的fsync同步操作
auto-aof-rewrite-percentage 300 #触发重写的增长比例
auto-aof-rewrite-min-size 1G #触发重写的最小文件大小

同步策略(appendfsync )有三种:

1、always:每个写命令都同步到磁盘,最安全但性能最低
2、everysec(默认):每秒同步一次,平衡安全性和性能
3、no:由操作系统决定同步时机,性能最好但是可能丢失数据

需要注意no-appendfsync-on-rewrite这个配置的作用机制:

<1>当设置为yes时

1、在AOF重写期间,主进程不会调用fsync来同步AOF文件
2、即使配置了appendfsync 也会被暂时忽略
3、可以显著提供重写期间的性能,减少I/O阻塞

<2>当设置为no时

1、在AOF重写期间,主进程仍会按照配置的appendfsync策略同步AOF文件
2、保证更高的数据安全性,但可能会影响重写性能

4、优缺点

AOF的优缺点如下:

优点缺点
数据安全性高:可配置不同级别的同步策略(always/everysec/no)文件体积大:记录所有写命令,长期运行后文件可能远大于RDB
可读性强:AOF文件是纯文本格式,便于人工检查或修复恢复速度慢:重启时需要重新执行所有命令,比RDB加载慢
容错性好:即使文件部分损坏,仍可通过redis-check-aof工具修复写入性能开销:相比RDB,AOF通常有更高的写入负载(取决于同步策略)
实时性高:默认每秒同步,最多丢失1秒数据重写期间可能阻塞:AOF重写时(尤其是大实例)可能短暂影响性能
操作粒度细:记录每个写命令,可精确到命令级别恢复历史兼容性问题:不同redis版本的AOF格式可能有细微差异
支持混合持久化(redis 4.0+):结合RDB和AOF优势配置复杂度高:需合理设置同步策略,重写触发条件等参数

5、AOF文件内容

客户端连接redis执行如下命令:

[root@xxx]# /xxx/redis-cli -h 127.0.0.1 -p 6379 -a xxx
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:16379> select 2 #使用2号库
OK
127.0.0.1:16379[2]> set XXX YYY #设置key=XXX,value=YYY
OK

AOF文件输出如下:

[root@xxx]# tail -f /xxx/appendonly.aof
*2 #表示这部分操作有2个部分
$6 #表示SELECT命令有6个字节
SELECT
$1 #表示使用的2号数据库这个2有1个字节
2
*3 #表示这部分操作有3个部分
$3 #表示set命令有3个字节
set
$3 #表示设置的键XXX有3个字节
XXX
$3
YYY #表示设置的值YYY有3个字节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/81949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HTTP】connectionRequestTimeout与connectTimeout的本质区别

今天发现有的伙伴调用第三方 httpclient 的配置中 connectTimeout 和 connectionRequestTimeout 配置的不到 1 S&#xff0c;问了一下他&#xff0c;知不知道这两个参数的意思&#xff0c;他说不知道。那我们今天就来了解一下这两个参数的区别 一、核心概念解析 1.1 connectT…

react中运行 npm run dev 报错,提示vite.config.js出现错误 @esbuild/win32-x64

在React项目中运行npm run dev时&#xff0c;如果遇到vite.config.js报错&#xff0c;提示esbuild/win32-x64在另一个平台中被使用&#xff0c;通常是由于依赖冲突或缓存问题导致的。解决方法是删除node_modules文件夹&#xff0c;并重新安装依赖。 如下图&#xff1a; 解决办…

EMQX开源版安装指南:Linux/Windows全攻略

EMQX开源版安装教程-linux/windows 因最近自己需要使用MQTT&#xff0c;需要搭建一个MQTT服务器&#xff0c;所以想到了很久以前用到的EMQX。但是当时的EMQX使用的是开源版的&#xff0c;在官网可以直接下载。而现在再次打开官网时发现怎么也找不大开源版本了&#xff0c;所以…

Python:操作Excel按行写入

Python按行写入Excel数据,5种实用方法大揭秘! 在日常的数据处理和分析工作中,我们经常需要将数据写入到Excel文件中。Python作为一门强大的编程语言,提供了多种库和方法来实现将数据按行写入Excel文件的功能。本文将详细介绍5种常见的Python按行写入Excel数据的方法,并附上…

vue3中RouterView配合KeepAlive实现组件缓存

KeepAlive组件缓存 为什么需要组件缓存代码展示缓存效果为什么不用v-if 为什么需要组件缓存 业务需求&#xff1a;一般是列表页面通过路由跳转到详情页&#xff0c;跳转回来时&#xff0c;需要列表页面展示上次展示的内容 代码展示 App.vue入口 <script setup lang"…

【JAVA】比较器Comparator与自然排序(28)

JAVA 核心知识点详细解释 Java中比较器Comparator的概念和使用方法 概念 Comparator 是 Java 中的一个函数式接口,位于 java.util 包下。它用于定义对象之间的比较规则,允许我们根据自定义的逻辑对对象进行排序。与对象的自然排序(实现 Comparable 接口)不同,Comparat…

浪潮服务器配置RAID和JBOD

目录 1 配置RAID2 设置硬盘为JBOD模式3 验证结果 1 配置RAID 进入 bios 界面 选择 “高级” - “UEFI-HII配置” 选择 raid 卡 进入 Main Menu 点击 Driver Management&#xff0c;可以查询当前硬盘 返回上一级&#xff0c;点击 Configuration Management - Create virtu…

mongodb管理工具的使用

环境&#xff1a; 远程服务器的操作系统&#xff1a;centOS stream 9; mongoDB version:8.0; 本地电脑 navicat premium 17.2 ; 宝塔上安装了mongoDB 目的&#xff1a;通过本地的navicat链接mongoDB,如何打通链接&#xff0c;分2步&#xff1a; 第一步&#xff1a;宝塔-&…

03-Web后端基础(Maven基础)

1. 初始Maven 1.1 介绍 Maven 是一款用于管理和构建Java项目的工具&#xff0c;是Apache旗下的一个开源项目 。 Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&#xff0c;也是一个专门为支持开源项目而生的非盈利性…

实景VR展厅制作流程与众趣科技实景VR展厅应用

实景VR展厅制作是一种利用虚拟现实技术将现实世界中的展览空间数字化并在线上重现的技术。 这种技术通过三维重建和扫描等手段&#xff0c;将线下展馆的场景、展品和信息以三维形式搬到云端数字空间&#xff0c;从而实现更加直观、立体的展示效果。在制作过程中&#xff0c;首…

Python爬虫实战:获取天气网最近一周北京的天气数据,为日常出行做参考

1. 引言 随着互联网技术的发展,气象数据的获取与分析已成为智慧城市建设的重要组成部分。天气网作为权威的气象信息发布平台,其数据具有较高的准确性和实时性。然而,人工获取和分析天气数据效率低下,无法满足用户对精细化、个性化气象服务的需求。本文设计并实现了一套完整…

几种超声波芯片的特点和对比

一 CX20106A ZIP - 8 CX20106A ZIP - 8 的核心竞争力在于高性价比、易用性和抗光干扰能力&#xff0c;尤其适合消费电子、短距离工业检测和低成本物联网场景。尽管在距离和精度上不及高端芯片&#xff0c;但其成熟的电路方案和广泛的市场应用&#xff08;如经典红外遥控升级为超…

利用ffmpeg截图和生成gif

从视频中截取指定数量的图片 ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpgffmpeg -i input.mp4 -ss 00:00:10 -vframes 180 output.jpg -vframes 180代表截取180帧, 实测后发现如果视频是60fps,那么会从第10秒截取到第13秒-i input.mp4&#xff1a;指定输入视频文…

系统架构设计师案例分析题——数据库缓存篇

一.核心知识 1.redis和MySQL的同步方案怎么做的&#xff1f; 读数据&#xff1a;先查询缓存&#xff0c;缓存不存在则查询数据库&#xff0c;然后将数据新增到缓存中写数据&#xff1a;新增时&#xff0c;先新增数据库&#xff0c;数据库成功后再新增缓存&#xff1b;更新和删…

什么是智能体?

什么是智能体&#xff1f; 智能体&#xff08;AI Agent&#xff09;是一种能够自主感知环境、做出决策并执行任务的智能实体&#xff0c;其核心依赖大型语言模型&#xff08;LLM&#xff09;或深度学习算法作为“大脑”模块。它通过感知模块&#xff08;如多模态输入&#xff…

企业数字化转型是否已由信息化+自动化向智能化迈进?

DeepSeek引发的AI热潮迅速蔓延到了各个行业&#xff0c;目前接入DeepSeek的企业&#xff0c;涵盖了科技互联网、云服务、电信、金融、能源、汽车、手机等热门领域&#xff0c;甚至全国各地政府机构也纷纷引入。 在 DeepSeek 等国产 AI 技术的推动下&#xff0c;众多企业已经敏锐…

广州卓远VR受邀参加2025智能体育典型案例调研活动,并入驻国体华为运动健康联合实验室!

近日&#xff0c;“2025年智能体育典型案例调研活动”在东莞松山湖成功举办。本次调研活动由国家体育总局体育科学研究所和中国信息通信研究院联合主办&#xff0c;旨在深入贯彻中央关于培育新型消费的战略部署&#xff0c;通过激活智能健身产品消费潜力&#xff0c;加快运动健…

springboot+vue实现鲜花商城系统源码(带用户协同过滤个性化推荐算法)

今天教大家如何设计一个 鲜花商城 , 基于目前主流的技术&#xff1a;前端vue3&#xff0c;后端springboot。学习完这个项目&#xff0c;你将来找工作开发实际项目都会又很大帮助。文章最后部分还带来的项目的部署教程。 系统有着基于用户的协同过滤推荐算法&#xff0c;还有保证…

【android bluetooth 协议分析 02】【bluetooth hal 层详解 3】【高通蓝牙hal主要流程介绍-上】

1. 背景 本节主要讨论 高通 蓝牙 hal 中&#xff0c;的一些流程。 看看你是否都清楚如下问题&#xff1a; 高通芯片电如何控制&#xff1f;串口是在哪里控制的&#xff1f;固件如何下载&#xff1f;初始化流程是怎么样的&#xff1f; 如果你已经对上述讨论的问题&#xff0c…

JavaEE 初阶文件操作与 IO 详解

一、文件操作基础&#xff1a;File 类 作用&#xff1a;操作文件或目录&#xff08;创建、删除、获取信息&#xff09;。 核心方法&#xff1a; exists()&#xff1a;文件是否存在createNewFile()&#xff1a;创建新文件mkdir()&#xff1a;创建目录delete()&#xff1a;删除…