Redis提供了哪几种持久化方式?

Redis 提供了2个不同形式的持久化方式。

RDB (Redis DataBase)
AOF (Append Of File)

一、RDB (Redis DataBase)

在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。

1.Redis的RDB备份是如何执行的

Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的那一批数据可能丢失。

2.Redis的RDB关于fork

在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux中引入了“写时复制技术”,一般情况父进程和子进程会共用同一段物理内存,只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。

3.Redis的RDB的保存的文件

在redis.conf中配置文件名称,默认为dump.rdb
rdb文件的保存路径,也可以修改。默认为Redis启动时命令行所在的目录下

4.Redis的RDB的保存策略

save 900 1    900 秒内如果至少有 1 个 key 的值变化,则保存
save 300   10   300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000  60 秒内如果至10000 个 key 的值变化,则保存

5.Redis的RDB的优缺点

1)rdb的优点

  1. 节省磁盘空间
  2. 恢复速度快

2)rdb的缺点

  1. 虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能。
  2. 在备份周期在一定间隔时间做一次备份,所以如果Redis意外down掉的话,就会丢失最后一次快照后的所有修改。

二、AOF (Append Of File)

以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

1.Redis的AOF的保存策略

1)appendfsync always:

appendfsync always:每次产生一条新的修改数据的命令都执行保存操作;效率低,但是安全!

2)appendfsync everysec:

appendfsync everysec:每秒执行一次保存操作。如果在未保存当前秒内操作时发生了断电,仍然会导致一部分数据丢失(即1秒钟的数据)。

3)appendfsync no:

appendfsync no:从不保存,将数据交给操作系统来处理。更快,也更不安全的选择。

推荐(并且也是默认)

推荐(并且也是默认)的措施为每秒 fsync 一次, 这种 fsync 策略可以兼顾速度和安全性。

2.Redis的AOF的优缺点

1)AOF的优点

  1. 备份机制更稳健,丢失数据概率更低。
  2. 可读的日志文本,通过操作AOF稳健,可以处理误操作。

2)AOF的缺点

  1. 比起RDB占用更多的磁盘空间。
  2. 恢复备份速度要慢。
  3. 每次读写都同步的话,有一定的性能压力。
  4. 存在个别Bug,造成不能恢复。

三、Redis的AOF和RDB同时开启

AOF和RDB同时开启,系统默认取AOF的数据

四、Redis持久化方式用哪个好

  1. 官方推荐两个都启用。
  2. 如果对数据不敏感,可以选单独用RDB。
  3. 不建议单独用 AOF,因为可能会出现Bug。
  4. 如果只是做纯内存缓存,可以都不用。

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

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

相关文章

架构设计: 如何提供设计方案

面试时你是否常被问到这样的问题:“你之前是如何设计这个系统(或子系统/模块/功能)的?请介绍你的思路。” 很多研发同学在听到类似的面试题时,往往忽略“系统设计思路”关键词,而是陷入某个技术点细节里&a…

各省快递量数据, shp+excel,2001-2021年,已实现数据可视化

基本信息. 数据名称: 各省快递量数据 数据格式: shpexcel 数据时间:2001-2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1a_2001快递量/万件_2001年2a_2002快递量/万件_2002年3…

ceph数据分布式存储

单机存储的问题 存储处理能力不足 传统的IDE的IO值是100次/秒,SATA固态磁盘500次/秒,固态硬盘达到2000-4000次/秒。即使磁盘的IO能力再大数十倍,也不够抗住网站访问高峰期数十万、数百万甚至上亿用户的同时访问,这同时还要受到主机…

软件测试|使用Python轻松裁剪视频

简介 裁剪视频是在视频编辑和处理中常见的任务之一,Python提供了多种库和工具,可以用来裁剪视频。在本文中,我们将详细讨论如何使用Python来裁剪视频,并提供示例代码。 步骤1:环境准备 首先,我们要安装必…

Firefox 100 正式发布

五月三日,Firefox发布了它的第100个版本,来回顾一下Firefox是如何走到今天这一步的,以及在第100个版本中发布了哪些功能。 回顾 2004年,《纽约时报》上宣布了Firefox 1.0的发布,这个广告列出了为第一版做出贡献的每一…

MySQL运维实战(4.4) SQL_MODE之STRICT_TRANS_TABLES和STRICT_ALL_TABLES

作者:俊达 1 STRICT MODE 在MySQL中,STRICT模式主要用于控制数据库的行为,有助于保持数据的一致性和完整性,特别是在涉及到数据写入、更新和其他操作时的约束。 如果设置STRICT模式,MySQL会更加严格地执行数据写入和…

C语言——小细节和小知识12

一、倒置句子 将句子中的单词位置倒置,标点不用倒置,例如i love you.倒置结果是:you. love i。 1、两步翻转法 采用两步翻转法来实现单词位置的倒置。首先,它整体翻转整个字符串,然后再逐个翻转每个单词内的字符。 …

redis安装-Linux为例

可以下载一个Shell或者MobaXterm工具,便于操作 在redis官网下载压缩包 开始安装 安装依赖 yum install -y gcc tcl切换目录 切换目录后直接把redis安装包拖到/user/local/src/下 cd /user/local/src/解压然后安装 #解压 tar -zxvf redis-7.2.4.tar.gz #安装 …

day13

1.多态的向上转型和向下转型向上转型: 父类的引用指向子类的对象Person person new Man();向下转型: 将父类的引用强转为子类的对象Man man (Man) person; 2.instanceof关键字的用法引用 intanceof 运行类型 3.抽象类声明方式abstract class Person {} 4.接…

后端开发笔记20240117

文章目录 1.lambda表达式学习1.1 从list中找到符合条件的对象并且返回1.2 groupby的用法 2.时间做差取秒 1.lambda表达式学习 1.1 从list中找到符合条件的对象并且返回 这种案例在java中的应用很多,适用于轻度过滤,如果能sql直接查询出符合规定的那肯定…

python数字图像处理基础(六)——模板匹配、直方图

目录 模板匹配概念单对象模板匹配多对象模板匹配 直方图1.查找直方图2.绘制直方图3.掩膜的应用 模板匹配 概念 模板匹配和卷积原理很像,模板在原图像上从原点开始滑动,计算模板与图像被模板覆盖的地方的差别程度,这个差别程度的计算方法在o…

openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramvalidate.c

文章目录 openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramvalidate.c概述笔记END openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramvalidate.c 概述 OPENSSL_hexstr2buf_ex 将16禁止字符串填充到16进制buffer BIO_new_mem_buf 有用, 可以内存的内容转为bio, 不…

如何安装“Nextcloud 客户端”win10系统?

1、 下载 Nextcloud的官网 Download and install Nextcloud 2、安装 3、 Nextcloud登录

组件v-model(.sync)记录使用(vue3)

示例(演示地址) 以下是Vue3中使用v-model实现组件的双向数据绑定的示例代码: 首先,让我们来了解一下Vue3中v-model的用法。在Vue3中,v-model 指令可以用于自定义组件上,用于实现组件的双向数据绑定。与Vue2…

python元类模型和class语句协议

1 python元类模型和class语句协议 学习python的类型模型和class语句协议。class语句末尾自动调用type()创建类对象并且赋值给类名称。 1.1 类是类型的实例 python3.x中,用户定义的类对象是名为type的对象的实例,type本身是一个类; python…

【温故而知新】HTML5存储localStorage/sessionStorage

文章目录 一、概念二、存储localStorage三、存储sessionStorage四、区别及优缺点1. 区别:2. 优缺点: 一、概念 HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点&#xf…

Alinx ZYNQ 7020 LED调试--in RAM

设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中(重新上电程序就丢失了) b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同,首先必须PS,然后烧…

python实例100第23例:打印菱形图案

题目:打印出如下图案(菱形): ********* ****************程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列…

golang中make与new有什么区别?

前言 记录下go语言中函数new与make的使用和区别,关于go语言中new和make是内建的两个函数,主要用来创建分配类型内存。 目录 前言make介绍用法:1. 创建切片(slice):2. 创建映射(map)…

AWS Secrets Manager 实战指南

AWS Secrets Manager 是一项强大的服务,用于安全地管理和存储敏感信息,如数据库凭证、API 密钥等。本实战指南将指导你如何在实际应用中使用 AWS Secrets Manager。 创建 Secret 首先,我们需要在 Secrets Manager 中创建一个新的 Secret 来存储敏感信息。 登录 AWS 控制台…