Redis_AOF持久化

news2024/9/24 7:21:02

AOF持久化

在AOF持久化的过程中,会以日志的方式记录每个redis“写”命令,并且redis服务器重启时重新执行AOF日志文件中的命令,从而达到“恢复数据”的效果

在这里插入图片描述

AOF故障恢复

当redis因发生故障而重启时,redis服务器会按照如下步骤根据AOF日志文件恢复数据

  • 创建一个伪客户端(fake client)。之所以叫伪客户端,是因为该客户端在本地,不带任何网络连接,但该伪客户端执行命令的效果,和真实的带网络的客户端没有任何差别
  • 该伪客户端从AOF日志文件里依次读取一条写命令并执行,直到完成所有写命令

执行完上述步骤后,其实就达到了“根据AOF日志文件恢复redis现场”的持久化效果

AOF相关参数

  • 可以通过设置配置文件里的参数来启动或停止AOF持久化机制

  • 基于AOF的持久化方式具有实时存储的特性,因此可以在读写关键数据时开启以防因Redis重启或故障而导致的风险。

  • 在默认情况下,Redis服务器未开启AOF持久化机制,通过修改redis.conf中的appendonly参数来开启

    appendonly yes
    
  • appendonly参数开启AOF持久化以后,通过appendfsync参数可以设置持久化的策略,该参数有三种取值:always、everysec和no。

always

appendonly参数取值为always时,每次发生Redis的写命令时都会触发持久化动作,可能会影响到Redis乃至Redis所在服务器的性能。

everysec

appendonly参数取值为everysec时,会以一秒的频率触发持久化动作,在这种方式下能很好地平衡持久化需求和性能间的关系,一般情况下取这个值。

no

appendonly参数取值为no时,会由操作系统来决定持久化的频率,这种方式对其他另外两种而言性能最好,但可能每次持久化操作间的间隔有些长,这样当故障发生时可能会丢失较多的数据。

通过dir和appendfilename这两个参数能设置持久化文件所在的路径和文件名而持久化文件的默认文件名是appendonly.aof

AOF文件重写

  • 随着持久化数据的增多,对应的AOF文件会越来越大,这可能会影响到性能对此,Redis提供了AOF文件重写功能。

  • Redis能创建新的AOF文件来替代现有的,在数据恢复时,这两个文件的效果是相同的,但新文件不会包含冗余命令,所以文件大小会比原来的小,可以通过如下三个参数来定义重写时的策略。

  • 通过no-appendfsync-on-rewrite参数来平衡性能和安全性:如果该参数取值为yes,那么在重写AOF文件时能提升性能,但可能在重写AOF文件时丢失数据如果取值为no,则不会丢失数据,但较取值为yes的性能可能会降低。默认取值是no。

  • 通过auto-aof-rewrite-percentage参数能指定重写的条件,默认是100,即果当前的AOF文件比上次执行重写时的文件大100%时会再次触发重写操作。果该参数取值为0,则不会触发重写操作。

  • 通过auto-aof-rewrite-min-size参数可以指定触发重写时AOF文件的大小,默认是64MB。

  • auto-aof-rewriterpercentage和auto-aof-rewrite-min-size两个参数指定的重写条件是“And”的关系,即只有当同时满足这两个条件时才会触发重写操作

  • 也可以通过bgrewriteaof命令来手动触发针对AOF持久化文件的重写操作。

AOF持久化实践

1.修改配置文件

修改redis.conf文件,在其中编写如下配置信息

appendonly yes  #启动AOF持久化机制
appendfsync everysec  #设置持久化的策略,持久化频率为1秒
dir ./  #设置持久化文件保存地址

apendfilename默认是appendonly.aof文件名

2.重新启动redis
redis-cli -a 123456 shutdown

redis-server redis.conf
3.操作redis
redis_test:0>set name yohoo
"OK"
redis_test:0>set age 25
"OK"

查看服务器上appendonly.aof文件

[root@192 redis-6.2.7]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$4
name
$5
yohoo
*3
$3
set
$3
age
$2
25

4.重启redis验证数据是否能恢复
[root@192 redis-6.2.7]# redis-cli -a 123456 shutdown
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

[root@192 redis-6.2.7]# redis-server redis.conf
[root@192 redis-6.2.7]# 

数据恢复

在这里插入图片描述

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

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

相关文章

演绎法推理

cp规则:给前提集合,给结论,要求推导前提推导结论。把结论化成蕴含式,里面的蕴含前件为真拿下来做补充条件,再和前提集合里面那么多条件一起推,最后推出那个结论为真。

【吊打面试官系列-Redis面试题】Redis 的数据类型?

大家好,我是锋哥。今天分享关于 【Redis 的数据类型?】面试题,希望对大家有帮助; Redis 的数据类型? 答:Redis 支持五种数据类型:string(字符串),hash&#x…

常见的服务器容器和漏洞类型汇总

常见的服务器容器和漏洞有哪些?常见的服务器容器包括KubeSphere、Tomcat、Nginx、Apache等,它们在提供便捷的服务部署和灵活的网络功能的同时,也可能存在着一定的安全风险。这些容器的漏洞可能导致数据泄露、权限被非授权访问甚至系统被完全控…

深入京东API世界:商品详情返回值的秘密

京东API世界中的商品详情返回值是一个复杂而精细的数据体系,它承载着商品的全面信息,对于商家、用户以及开发者而言,都具有极高的价值。下面,我们将深入探索京东商品详情API返回值的秘密。 基本结构概述 京东商品详情API的返回值…

【工控】线扫相机小结 第二篇

背景 上一篇中《线扫相机小结》中介绍了一些基础知识和注意事项,这一篇是对上一篇的进一步补充。 会介绍线扫相机的一些调试技巧。 如何在线调试? 我们知道,线扫相机不能像面阵相机一样实时的呈现图像,只能一行行的扫描&#x…

谷歌的搜索语法

谷歌搜索常用语法 谷歌提供了多种搜索语法,帮助用户更精确地查找所需内容。以下是一些常用语法的介绍和示例: 1. 精确匹配:使用双引号 " " 在搜索内容时,如果需要精确匹配某个词组,可以将其放在双引号内。 …

BaseCTF 高校联合新生赛 Week1

Week1 Web [Week1] HTTP BaseCTF{4248fc3d-a280-4de0-b5e6-6ff0ecaa1fca} [Week1] 喵喵喵•ﻌ• [Week1] md5绕过欸 [Week1] A Dark Room [Week1] upload 什么过滤都没有,上传一句话木马即可 [Week1] Aura 酱的礼物 卡在SSRF那里, 我想用…

SpringCloud之二注册中心(Eureka)

一、Eureka概述 Eureka是Netflix公司开源的一个服务注册与发现的中间组件。 在微服务架构系统之中,我们经常提三个角色:注册中心 (Register)、服务提供者(Provider)、服务消费者(Consumer)。 1.注册中心:服务提供者可以将服务发布到注册中心…

亚马逊aws的弹性与可扩展性解析

欢迎来到雲闪世界。可以使用各种服务和工具在 AWS 上实现可扩展性和弹性。例如,AWS Application Auto Scaling 是一种可以自动调整容量以低成本实现出色应用程序性能的服务。这允许轻松设置跨多个服务的多个资源的应用程序扩展。让我们来谈谈弹性和可扩展性之间的区…

数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解

文章目录 1.树2.二叉树2.1 二叉树的基本概念2.2 满二叉树2.3 完全二叉树2.4 二叉排序树2.5 平衡二叉树 3.二叉树的存储结构3.1 二叉树的顺序存储3.2 二叉树的链式存储 1.树 树的基本概念 结点的度:指该结点的分支个数,如结点A的度为2 树的度:…

DHU 二维数组 暗恋

思路及代码 蛮力算法 验证是否是正方形的方法是简单的 但是蛮力下来写的不优雅 第一版超时了&#xff0c;第二版改了一点点&#xff0c;把一个循环换成了加加减减 #include<iostream> using namespace std;int main(){ //input R,C int 1< <200 //input R*C矩阵…

ceph-rgw zipper的设计理念(1)

0.前言 RGW在ceph存储中的主要作用是提供S3和Swift的协议访问支持。Zipper工作主要是将RGW分为协议部分和后端部分。协议部分还是支持S3和Swift协议&#xff0c;包括身份认证、协议参数解析和op操作解析等等&#xff1b;后端部分主要是对接不同的存储&#xff0c;比如rados&am…

利用OpenCV根据图片识别环境的亮度

一、前言 在当代数字化转型的浪潮中&#xff0c;计算机视觉技术无疑占据了举足轻重的地位&#xff0c;其应用范围之广&#xff0c;影响力之深&#xff0c;已成为推动社会进步的关键力量之一。而OpenCV&#xff0c;作为计算机视觉领域的佼佼者&#xff0c;凭借其卓越的性能与广…

强推!必看!!由中国信通院发布的汇聚99个大模型优秀应用案例集!附219页PDF文件下载

2024 年是大模型深入赋能千行百业&#xff0c;融入实体经济&#xff0c;助力科技创新的一年。截至今年5月&#xff0c;我国国产大模型的数量已经超过 300个&#xff0c;预示着大模型在各行业场景的创新应用和深度拓展&#xff0c;对培育新质生产力、高水平赋能新型工业化、推动…

第100+23步 ChatGPT学习:概率校准 Sigmoid Calibration

基于Python 3.9版本演示 一、写在前面 最近看了一篇在Lancet子刊《eClinicalMedicine》上发表的机器学习分类的文章&#xff1a;《Development of a novel dementia risk prediction model in the general population: A large, longitudinal, population-based machine-learn…

java中超级重要的SPI机制

SPI机制是理解各个框架集成的重要思想&#xff0c;只用理解了SPI才能理解框架的集成和扩展。直观的就是SPI机制可以让你更好的理解springboot集成各个扩展。 废话不多说&#xff01;&#xff01; 1.什么是spi机制&#xff1f; Spi机制是java提供的一种服务发现机制&#xff0…

企业常用的10款主流图纸加密软件排行榜|企业图纸防泄密

图纸是企业的重要资产&#xff0c;其安全性直接关系到企业的核心竞争力。下面为大家介绍10款主流的图纸加密软件&#xff0c;每款软件都有其独特的功能和优势&#xff0c;帮助企业有效防止图纸泄密。 1. 安秉图纸加密软件 安秉图纸加密软件是一款专为企业用户设计的图纸加密解…

全球石油巨头哈里伯顿因网络攻击被迫关闭系统

美国能源服务巨头哈里伯顿公司在周五向联邦监管机构提交的文件中表示,在本周遭受网络攻击后,该公司主动关闭了某些系统以“帮助保护它们”。 该公司在提交给美国证券交易委员会的文件中表示,周三该公司获悉“未经授权的第三方获得了其系统某些部分的访问权限”,并正在与外…

如何开启让设备获取到IPv6?

前言 现在许多小伙伴拉的宽带基本上都是光猫进行拨号的。这个就导致很多小伙伴不知道如何让设备获取IPv6。 但好像还有小伙伴分不清光猫拨号和光猫桥接的区别&#xff0c;其实它们的区别就在于让设备直连光猫的网口或者光猫的Wi-Fi&#xff0c;就会出现两种情况&#xff1a; …

实战派六西格玛:培训只是热身,应用才是关键!

在当今竞争激烈的市场环境中&#xff0c;六西格玛作为一套卓越的质量管理策略与工具&#xff0c;其影响力已远远超越了单纯的制造领域&#xff0c;渗透至各行各业的运营管理之中。然而&#xff0c;许多企业在追逐六西格玛光环的过程中&#xff0c;却常常偏离了其核心轨道&#…