Redis的数据持久化

前言

本文主要介绍Redis的三种持久化方式、AOF持久化策略等

什么是持久化

持久化是指将数据在内存中的状态保存到非易失性介质(如硬盘、固态硬盘等)上的过程。在计算机中,内存中的数据属于易失性数据,一旦断电或重启系统,这些数据将会丢失。

Redis中的持久化

我们可以知道Redis是基于内存存储数据的一个中间件,他的数据是保存在内存中的,如果重启将面临数据丢失的风险,那么为了解决这个风险就必须进行对数据的持久化的保存,也就是得把数据从内存中拷贝到磁盘中进行维护。

在Redis中,持久化可以选择使用下面三种中的一种方式进行

1. 快照方式(RDB,Redis Database):将某一个时刻的数据,以二进制的方式写入磁盘
2. 文件追加方式(AOF,Append Only File):记录所有写操作命令,并以文件的形式追加到持久化文件中
3. 混合持久化方式:Redis4.0中新增的方式,结合RDB和AOF二者的优点,将当前数据以二进制写入到文件开头,后续执行的命令以AOF格式追加到文件中,这样不仅保证了Redis启动速度,又降低了数据丢失的风险

RDB 与 AOF 的特点及其二者区别

RDB

  • 工作原理: RDB是快照方式记录,将当前Redis中的数据以压缩二进制的形式写入到硬盘文件中,每次写入都是覆盖写入,代表了某个时间点的数据
  • 优点:
    • 效率高: 因为是二进制文件,可以被机器直接识别,没有翻译过程,恢复速度快
    • 文件较小: 相比于AOF,RDB文件体量更小
  • 缺点
    • 数据丢失: 由于RDB是快照的形式保存数据,如果快照之间发生故障,那么可能导致部分数据丢失(没来及全部备份,甚至说还没备份就故障了)

    • AOF

  • 工作原理: AOF是将Redis的写操作以日志的形式,将数据以追加的形式补充到日志文件中,在需要数据恢复时,通过复现文件中的命令来实现日志恢复
  • 优点:
    • 数据完整性好: AOF是以追加的方式写入日志文件中,通常比RDB保存的数据更为可靠,数据丢失率低
    • 可读性高: 因为是写入执行命令,更方便维护人员进行阅读维护
    • 多种持久化策略: 提供多种持久化策略,可以根据不同场景选择合适的一种方式
  • 缺点:
    • 文件较大: 因为是追加的形式上进行写,所以随着时间的增加,文件会越来越大
    • 对磁盘写入频繁: AOF持久化需要频繁的写入日志文件,对磁盘造成一定的写入压力

AOF的3种持久化策略

Always: 将每个写操作都追加到AOF文件中,即使是小的操作也会被追加。这是最安全的策略,可以确保数据的实时持久化,但也会带来较高的IO负载和磁盘空间占用。

Everysec: 每秒将写操作追加到AOF文件中。Redis会在每秒钟的间隔内将多个写操作合并到一起,并一次性将它们追加到AOF文件中。这种策略可以在一定程度上平衡数据的实时性和性能开销。

No: 不对AOF文件进行同步操作,由操作系统来处理文件的同步和持久化。这种策略会带来最高的性能,但也是最不安全的,如果发生突发性的故障,可能会导致数据的丢失和不一致。Linux默认30秒写入数据到磁盘

在以上三种策略中,默认情况下Redis使用的是"Everysec"策略,它在实践中提供了较好的性能和可靠性的平衡。

以上是本文全部内容
感谢阅读

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

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

相关文章

java实现视频抽帧以及获取其他视频信息

java实现视频抽帧以及获取其他视频信息 1.在pom.xml文件中导入jar包 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.4.3</version> </dependency><dependency><groupId&…

stable diffusion基础

整合包下载&#xff1a;秋叶大佬 【AI绘画8月最新】Stable Diffusion整合包v4.2发布&#xff01; 参照&#xff1a;基础04】目前全网最贴心的Lora基础知识教程&#xff01; VAE 作用&#xff1a;滤镜微调 VAE下载地址&#xff1a;C站&#xff08;https://civitai.com/models…

漏洞指呗-VluFocus靶场专栏-番外篇

漏洞指呗-VluFocus靶场专栏-番外篇奇技淫巧 &#x1f338;struts2漏洞扫描工具&#x1f338;step1 修改ip和端口step2 验证漏洞是否存在step3 执行cmd命令&#xff0c;获取flag &#x1f338;Goby插件工具headshot&#x1f338;step1 输入ip和端口 检测step2 cmd 输入指令 &…

vactor中迭代器失效问题

目录 什么是迭代器失效导致迭代器失效的操作VS和g环境下对与迭代器失效的态度 什么是迭代器失效 迭代器的底层其实就是一个指针&#xff0c;或者对指针进行了封装 vector的迭代器就是一个指针T* 一个迭代器指向某一个空间&#xff0c;此时这块空间被释放了&#xff0c;这个迭…

【SA8295P 源码分析】35 - QNX侧 Marvell 88Q5152 Phy_Switch 导通实录(硬核)

【SA8295P 源码分析】35 - QNX侧 Marvell 88Q5152 Phy_Switch 导通实录(硬核) 一、硬件原理分析二、88Q5152 芯片读写时序分析2.1 Clause 22 读、写寄存器配置(配置 Port 5 采用C22条款)2.1.1 88Q5152 P5 端口配置2.2 Clause 45 读寄存器时序(配置 Port 1、Port 2 采用C45…

HTML <source> 标签

实例 拥有两份源文件的音频播放器。浏览器应该选择它所支持的文件(如果有的话): <audio controls><source src="horse.ogg" type="audio/ogg"><source src="horse.mp3" type="audio/mpeg">Your browser does n…

Keepalived配置文件详解+主从IP接管实战

文章目录 Keepalived配置文件全局配置VRRP实例主备配置对比 LVS配置Keepalived一主一从IP接管实战MASTER配置文件BACKUP配置文件检查效果测试 Keepalived配置文件 全局配置 #以下是官方给的默认配置文件(示例配置) #以#或&#xff01;为注释符 global_defs {notification_ema…

Appium Desktop安装

【提示&#xff1a;官方已不再维护&#xff0c;建议命令行方式安装&#xff0c;但可以学习了解一下】 Appium Desktop是一款适用于Mac、Windows和Linux的应用程序&#xff0c;它以漂亮灵活的UI为您提供Appium自动化服务器的强大功能。它基本上是Appium Server的图形界面。您可…

【华为认证数通高级证书实验-分享篇2】

实验拓扑 注&#xff1a;代码块为各交换机路由器中的配置命令 配置拓扑文件 实验要求 实现全网通 实验配置 SW3 [SW3]v b 10 20 [SW3]int e0/0/1 [SW3-Ethernet0/0/1]po link-t a [SW3-Ethernet0/0/1]po de v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]po li…

ES6自用笔记

目录 原型链 引用类型&#xff1a;__proto__(隐式原型)属性&#xff0c;属性值是对象函数&#xff1a;prototype(原型)属性&#xff0c;属性值是对象 相关方法 person.prototype.isPrototypeOf(stu) Object.getPrototypeOf(Object)替换已不推荐的Object._ _ proto _ _ Ob…

【hive】hive中row_number() rank() dense_rank()的用法

hive中row_number() rank() dense_rank()的用法 一、函数说明 主要是配合over()窗口函数来使用的&#xff0c;通过over(partition by order by )来反映统计值的记录。 rank() over()是跳跃排序&#xff0c;有两个第二名时接下来就是第四名(同样是在各个分组内)dense_rank() …

神经网络基础-神经网络补充概念-60-卷积步长

概念 在深度学习中&#xff0c;卷积步长&#xff08;convolution stride&#xff09;是指在卷积操作中滑动卷积核的步幅。卷积操作是神经网络中常用的操作之一&#xff0c;用于从输入数据中提取特征。步长决定了卷积核在输入数据上的滑动间隔&#xff0c;从而影响输出特征图的…

WebStorm运行vue项目

WebStorm运行vue项目&#xff08;vue2&#xff09; 1.安装webstorm 2. 需要安装node.js 环境&#xff0c;可以去官网下载 https://nodejs.org/en 3. 安装完需要查看 按winr 输入cmd进入 输入命令node -v 和npm -v 查看&#xff0c;会出现相应的版本号,代表安装成功 vue官网安…

【Python】Web学习笔记_flask(6)——会话session对象

处理利用cookie来判断用户登录外&#xff0c;也可以使用session来判断用户是否登录 html代码和cookie对象的设置相同 from flask import Flask,request,render_template,make_response,session,url_for,redirectappFlask(__name__) app.secret_keyps1234567890 app.route(/) …

Vue-5.编译器Idea

Vue专栏&#xff08;帮助你搭建一个优秀的Vue架子&#xff09; Vue-1.零基础学习Vue Vue-2.Nodejs的介绍和安装 Vue-3.Vue简介 Vue-4.编译器VsCode Vue-5.编译器Idea Vue-6.编译器webstorm Vue-7.命令创建Vue项目 Vue-8.Vue项目配置详解 Vue-9.集成&#xff08;.editorconfig、…

开箱报告,Simulink Toolbox库模块使用指南(四)——S-Fuction模块

文章目录 前言 S-Fuction模块 电路方程模型 编写S函数 仿真验证 Tips 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;一&#xff09;——powergui模块》 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff…

[Google] DeepMind Gemini: 新一代LLM结合AlphaGo技术将力压 GPT-4|未来 AI 领域的新巨头

2016年&#xff0c;Google DeepMind 人工智能实验室孕育出的 AlphaGo 人工智能程序在围棋赛场上一举击败冠军选手&#xff0c;成为历史的见证者。如今&#xff0c;DeepMind 联合创始人兼首席执行官 Demis Hassabis 表示&#xff0c;他们的工程师正借鉴 AlphaGo 的技术研发一款名…

23年9月到24年3月苹果产品发布

2023年到2024年的苹果产品发布 9月 基本就是手机&#xff0c;4款&#xff1a;15、15plus、15pro、15pro max 手表和ipodmini 10月就是新的M3芯片&#xff0c;至于M pro芯片会放在24年的3月份。 其他的就没什么新意了

自动化集装箱码头建设指南

1 总则 1.0.1 为规范和指导自动化集装箱码头建设&#xff0c;提高自动化集装箱码头建设和装卸自动化应用水平&#xff0c;做到技术先进、经济合理、安全可靠、高效节能、绿色环保&#xff0c;制定本指南。 1.0.2本指南适用于新建、改建和扩建自动化集装箱码头的设计&#xff0…

AI 绘画Stable Diffusion 研究(十)sd图生图功能详解-精美二维码的制作

免责声明: 本案例所用安装包免费提供&#xff0c;无任何盈利目的。 大家好&#xff0c;我是风雨无阻。 为了让大家更直观的了解图生图功能&#xff0c;明白图生图功能到底是干嘛的&#xff0c;能做什么事情&#xff1f;今天我们继续介绍图生图的实用案例-精美二维码的制作。 对…