当前位置: 首页 > news >正文

赶紧收藏!2024 年最常见 20道 Redis面试题(三)

上一篇地址:赶紧收藏!2024 年最常见 20道 Redis面试题(二)-CSDN博客

五、Redis的持久化机制是什么?

Redis 是一个高性能的键值存储系统,支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等。为了确保数据的安全性,Redis 提供了两种持久化机制,分别是 RDB(Redis Database)和 AOF(Append Only File)。

RDB 持久化

RDB 是一种快照式的持久化方式,它会在指定的时间间隔内将内存中的数据集生成快照并保存到磁盘上。RDB 持久化可以手动执行,也可以设置自动执行。自动执行的配置主要有:

  • save <seconds> <changes>:在指定的秒数内,如果数据变化了指定的次数,则执行快照保存。
  • bgsave:在后台异步执行快照保存,不会阻塞主线程。

RDB 持久化的优点是恢复速度快,适合大规模的数据恢复。但是,RDB 持久化的缺点是如果 Redis 服务突然崩溃,那么最后一次快照之后的数据变更将会丢失。

AOF 持久化

AOF 持久化是通过记录每次写操作命令来实现的。Redis 会将所有写操作追加到 AOF 文件的末尾。AOF 持久化可以配置为:

  • appendonly yes:开启 AOF 持久化。
  • appendfsync:配置 AOF 文件的同步策略,可以是 always(每次写操作都同步)、everysec(每秒同步一次)或者 no(操作系统控制同步)。

AOF 持久化的优点是数据安全性高,可以提供更完整的数据恢复。缺点是 AOF 文件可能会比 RDB 文件大,恢复速度也可能会慢一些。

混合持久化

Redis 4.0 之后引入了混合持久化(RDB + AOF)的方式,这种方式结合了 RDB 和 AOF 的优点。在混合持久化中,Redis 首先会创建一个 RDB 文件,然后继续使用 AOF 记录 RDB 创建后的所有写操作。这样,在恢复时,Redis 可以首先加载 RDB 文件来快速恢复数据,然后通过 AOF 文件来恢复 RDB 创建后的数据变更。

配置持久化

持久化机制的配置通常在 Redis 的配置文件 redis.conf 中设置。用户可以根据自己的需求来配置 RDB、AOF 或混合持久化。

总结

Redis 的持久化机制是确保数据安全性的重要功能,通过 RDB、AOF 或混合持久化,用户可以根据实际的应用场景来选择合适的持久化策略。

六、Redis的同步机制是什么?

Redis 的同步机制主要涉及到主从复制(Master-Slave Replication)和集群(Cluster)中的分片数据同步。以下是这两种情况下的同步机制的详细说明:

主从复制(Master-Slave Replication)

主从复制是 Redis 提供的一种高可用性解决方案,它允许多个从节点(Slave)复制主节点(Master)的数据。主从复制的同步机制包括:

  1. 初次同步:当从节点第一次连接到主节点时,它会发起一个全量同步请求。主节点会创建一个数据集的快照(RDB 文件),然后发送给从节点。从节点接收并加载这个快照,接着主节点会将快照创建后的所有写操作命令发送给从节点,从节点执行这些命令来保证数据的一致性。

  2. 增量同步:在初次同步之后,主节点会持续地将新的写操作命令发送给从节点。这个过程称为增量同步。Redis 使用一个称为“复制偏移量”(replication offset)的机制来跟踪主从节点之间的数据同步状态。

  3. 心跳机制:主从节点之间会定期发送心跳信息,以确保彼此之间的连接是活跃的。心跳信息也用于传输复制偏移量,帮助主节点了解从节点的同步状态。

  4. 故障转移:在主节点发生故障时,从节点可以被提升为新的主节点,这个过程称为故障转移(failover)。故障转移可以通过手动操作或使用 Redis Sentinel 来自动完成。

集群(Cluster)中的分片数据同步

Redis 集群是一种分布式数据存储解决方案,它将数据自动分割成多个分片(slots),并分布在不同的节点上。集群中的同步机制包括:

  1. 槽(Slot)分配:集群中的每个节点负责一定数量的槽。每个键值对根据其键的哈希值映射到一个特定的槽。

  2. 主从复制:在集群中,每个槽都可以有一个主节点和一个或多个从节点。从节点复制主节点的槽数据,确保数据的高可用性。

  3. 槽迁移:集群支持在线迁移槽,即在不停止服务的情况下,将一个槽从一个节点迁移到另一个节点。这允许集群动态地重新分配负载。

  4. 故障检测与恢复:集群节点会相互检测故障,如果一个主节点故障,集群会通过投票机制选择一个从节点来替换故障的主节点。

  5. 数据一致性:集群中的每个节点都会维护一个数据结构,记录其他节点的状态和槽的分配情况。这有助于在节点故障时快速恢复数据一致性。

总结

Redis 的同步机制是其高可用性和数据一致性的关键。主从复制允许数据在多个节点之间复制,而集群模式则通过分片和槽的分配,实现了数据的分布式存储和同步。通过这些机制,Redis 能够在保证高性能的同时,提供数据的可靠性和容错能力。

相关文章:

赶紧收藏!2024 年最常见 20道 Redis面试题(三)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;二&#xff09;-CSDN博客 五、Redis的持久化机制是什么&#xff1f; Redis 是一个高性能的键值存储系统&#xff0c;支持多种类型的数据结构&#xff0c;如字符串、哈希、列表、集合、…...

VMware 和 VirtualBox开机自启指定虚拟机详细教程

VMware上虚拟机随宿主机开机自启 1. 设置自动启动虚拟机 网上教程旧版的&#xff0c;界面和新版有所差异。17版本设置如下&#xff1a;VMware Workstation工作台 -> 文件 -> 配置自动启动虚拟机 -> 按顺序选择需要启动的虚拟机 VMWare17配置自动启动虚拟机提示&…...

note-网络是怎样连接的2 协议栈和网卡

助记提要 协议栈的结构协议栈创建连接的实际过程协议栈发送数据包的2个判断依据TCP确认数据收到的原理断开连接的过程路由表和ARPMAC地址的分配MAC模块的工作通过电信号读取数据的原理网卡和协议栈接收包的过程ICMPUDP协议的适用场景 2章 用电信号传输TCP/IP数据 探索协议栈和…...

ros学习之路径规划

一、全局路径规划中的地图 1、栅格地图&#xff08;Grid Map&#xff09;2、概率图&#xff08;Cost Map&#xff09;3、特征地图&#xff08;Feature Map4、拓扑地图&#xff08;Topological Map&#xff09; 二、全局路径规划算法 1、Dijkstra 算法 2、最佳路径优先搜索算…...

Qt 顺序容器的详细介绍

一.顺序容器介绍 Qt 中的顺序容器包括 QVector、QList、QLinkedList 和 QStack。这些容器都提供了类似于 C STL 中的容器的功能&#xff0c;但是在 Qt 中提供了更多的功能和接口。 二.具体介绍 1.QVector QVector&#xff1a;是一个动态数组&#xff0c;可以在其末尾快速插入…...

基于语音识别的智能电子病历(三)之 M*Modal

讨论“基于语音识别的智能电子病历”&#xff0c;就绕不开 Nuance 和 M*Modal。这2个公司长时间的占据第一和第二的位置。下面介绍一下M*Modal。 这是2019年的一个新闻“专业医疗软件提供商3M公司为自己购买了一份圣诞礼物&#xff0c;即M*Modal IP LLC的医疗技术业务&#xf…...

理解Apache Storm的实际用途和应用场景

学习目标&#xff1a; 理解Apache Storm的实际用途和应用场景 学习内容&#xff1a; 1. 实时数据处理和分析 1.1 实时日志分析 公司可以使用Storm来实时处理和分析服务器日志。例如&#xff0c;电商网站可以实时监控用户行为日志&#xff0c;以检测异常活动&#xff08;如DD…...

【iceberg】数据湖与iceberg调研与实战

文章目录 一. 为什么现在要强调数据湖1. 大数据架构发展历史2. Lambda架构与kappa架构3. 数据湖所具备的能力 二. iceberg是数据湖吗1. iceberg的诞生2. iceberg设计之table format从如上iceberg的数据结构可以知道&#xff0c;iceberg在数据查询时&#xff0c;1.查找文件的时间…...

xrdp多用户多控制界面远程控制

1、无桌面安装桌面&#xff08;原本有ubuntu桌面的可以直接跳过这一步&#xff09; Gnome 与 xfce 相比&#xff0c;xfce 由于其轻巧&#xff0c;它可以安装在低端台式机上。Xfce 优雅的外观&#xff0c;增强了用户体验&#xff0c;它对用户非常友好&#xff0c;性能优于其他桌…...

git会忽略我们工作改动中的大小写

在我们日常git工作中&#xff0c;我们对于文件名字的大小写修改正常是不会被git记录的 这是因为默认情况下git是不区分大小写的 这会导致一个问题&#xff0c;由于我们修改了文件名字的大小写&#xff0c;而对于文件之间相互依赖的导入代码没有对应修改 如果我们此时本地推送…...

SSL 自定义证书创建过程

1、生成自签名根证书和私钥 1.1 生成根证书 1.1.1生成根证书私钥 首先&#xff0c;生成一个自签名的根证书和私钥。这个根证书将作为信任锚&#xff08;Trust Anchor&#xff09;&#xff0c;客户端会信任由这个根证书签署的所有证书。 openssl genrsa -out rootCA.key 204…...

javaSwing飞机订票系统

摘要 Java swing实现的飞机票预定系统&#xff0c;系统数据库原本采用的是Oracle&#xff0c;我又改了一个mysql版本的&#xff0c;所以这套系统有两个版本&#xff0c;一个是mysql数据库版的&#xff0c;一个是Oracle数据库版 一&#xff0e; 已经完成的功能 &#xff1a; …...

赶紧收藏!2024 年最常见 20道 Redis面试题(四)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;三&#xff09;-CSDN博客 七、Pipeline有什么好处&#xff0c;为什么要用pipeline&#xff1f; Redis Pipeline 是一种批量执行命令的技术&#xff0c;它允许客户端一次性发送多个命令…...

虚拟列表 vue-virtual-scroller 的使用

npm 详情&#xff1a;vue-virtual-scroller - npm (npmjs.com) 这里我使用的是RecycleScroller。 App.vue <template><RecycleScrollerclass"scroller":items"items":item-size"54"v-slot"{ item }"><list-item :it…...

前端基础入门三大核心之HTML篇:深入理解重绘与重排 —— 概念、区别与实战演练

前端基础入门三大核心之HTML篇&#xff1a;深入理解重绘与重排 —— 概念、区别与实战演练 HTML渲染基础回顾重绘与重排的概念重绘&#xff08;Repaint&#xff09;重排&#xff08;Reflow&#xff09; 区别与影响实战示例&#xff1a;优化策略与代码演示示例1&#xff1a;避免…...

【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;TCP&#xff08;2&#xff09;IP广播&#xff08;3&#xff09;ARP协议&#xff08;4&#xff09;IP路由器&#xff08;5&#xff09;MAC协议&#xff08;6&#xff09;三次握手&#xff08;7&#xff09;TCP/IP&#xf…...

线程的概念和控制

文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程&#xff1f; 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一…...

PHS树脂(聚对羟基苯乙烯)为KrF光刻胶专用树脂 本土企业具备百公斤级别量产能力

PHS树脂&#xff08;聚对羟基苯乙烯&#xff09;为KrF光刻胶专用树脂 本土企业具备百公斤级别量产能力 PHS树脂又称聚对羟基苯乙烯树脂、聚羟基苯乙烯树脂&#xff0c;指以对羟基苯乙烯作为基材制成的光刻胶树脂。与其他光刻胶树脂相比&#xff0c;PHS树脂具有极佳热稳定性、化…...

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 一、简单介绍 二、单变量非线性变换 三、自…...

uniapp-自定义navigationBar

封装导航栏自定义组件 创建 nav-bar.vue <script setup>import {onReady} from dcloudio/uni-appimport {ref} from vue;const propsdefineProps([navBackgroundColor])const statusBarHeight ref()const navHeight ref()onReady(() > {uni.getSystemInfo({success…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...