赶紧收藏!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)的数据。主从复制的同步机制包括:
-
初次同步:当从节点第一次连接到主节点时,它会发起一个全量同步请求。主节点会创建一个数据集的快照(RDB 文件),然后发送给从节点。从节点接收并加载这个快照,接着主节点会将快照创建后的所有写操作命令发送给从节点,从节点执行这些命令来保证数据的一致性。
-
增量同步:在初次同步之后,主节点会持续地将新的写操作命令发送给从节点。这个过程称为增量同步。Redis 使用一个称为“复制偏移量”(replication offset)的机制来跟踪主从节点之间的数据同步状态。
-
心跳机制:主从节点之间会定期发送心跳信息,以确保彼此之间的连接是活跃的。心跳信息也用于传输复制偏移量,帮助主节点了解从节点的同步状态。
-
故障转移:在主节点发生故障时,从节点可以被提升为新的主节点,这个过程称为故障转移(failover)。故障转移可以通过手动操作或使用 Redis Sentinel 来自动完成。
集群(Cluster)中的分片数据同步
Redis 集群是一种分布式数据存储解决方案,它将数据自动分割成多个分片(slots),并分布在不同的节点上。集群中的同步机制包括:
-
槽(Slot)分配:集群中的每个节点负责一定数量的槽。每个键值对根据其键的哈希值映射到一个特定的槽。
-
主从复制:在集群中,每个槽都可以有一个主节点和一个或多个从节点。从节点复制主节点的槽数据,确保数据的高可用性。
-
槽迁移:集群支持在线迁移槽,即在不停止服务的情况下,将一个槽从一个节点迁移到另一个节点。这允许集群动态地重新分配负载。
-
故障检测与恢复:集群节点会相互检测故障,如果一个主节点故障,集群会通过投票机制选择一个从节点来替换故障的主节点。
-
数据一致性:集群中的每个节点都会维护一个数据结构,记录其他节点的状态和槽的分配情况。这有助于在节点故障时快速恢复数据一致性。
总结
Redis 的同步机制是其高可用性和数据一致性的关键。主从复制允许数据在多个节点之间复制,而集群模式则通过分片和槽的分配,实现了数据的分布式存储和同步。通过这些机制,Redis 能够在保证高性能的同时,提供数据的可靠性和容错能力。
相关文章:
赶紧收藏!2024 年最常见 20道 Redis面试题(三)
上一篇地址:赶紧收藏!2024 年最常见 20道 Redis面试题(二)-CSDN博客 五、Redis的持久化机制是什么? Redis 是一个高性能的键值存储系统,支持多种类型的数据结构,如字符串、哈希、列表、集合、…...
VMware 和 VirtualBox开机自启指定虚拟机详细教程
VMware上虚拟机随宿主机开机自启 1. 设置自动启动虚拟机 网上教程旧版的,界面和新版有所差异。17版本设置如下:VMware Workstation工作台 -> 文件 -> 配置自动启动虚拟机 -> 按顺序选择需要启动的虚拟机 VMWare17配置自动启动虚拟机提示&…...
note-网络是怎样连接的2 协议栈和网卡
助记提要 协议栈的结构协议栈创建连接的实际过程协议栈发送数据包的2个判断依据TCP确认数据收到的原理断开连接的过程路由表和ARPMAC地址的分配MAC模块的工作通过电信号读取数据的原理网卡和协议栈接收包的过程ICMPUDP协议的适用场景 2章 用电信号传输TCP/IP数据 探索协议栈和…...
ros学习之路径规划
一、全局路径规划中的地图 1、栅格地图(Grid Map)2、概率图(Cost Map)3、特征地图(Feature Map4、拓扑地图(Topological Map) 二、全局路径规划算法 1、Dijkstra 算法 2、最佳路径优先搜索算…...
Qt 顺序容器的详细介绍
一.顺序容器介绍 Qt 中的顺序容器包括 QVector、QList、QLinkedList 和 QStack。这些容器都提供了类似于 C STL 中的容器的功能,但是在 Qt 中提供了更多的功能和接口。 二.具体介绍 1.QVector QVector:是一个动态数组,可以在其末尾快速插入…...
基于语音识别的智能电子病历(三)之 M*Modal
讨论“基于语音识别的智能电子病历”,就绕不开 Nuance 和 M*Modal。这2个公司长时间的占据第一和第二的位置。下面介绍一下M*Modal。 这是2019年的一个新闻“专业医疗软件提供商3M公司为自己购买了一份圣诞礼物,即M*Modal IP LLC的医疗技术业务…...
理解Apache Storm的实际用途和应用场景
学习目标: 理解Apache Storm的实际用途和应用场景 学习内容: 1. 实时数据处理和分析 1.1 实时日志分析 公司可以使用Storm来实时处理和分析服务器日志。例如,电商网站可以实时监控用户行为日志,以检测异常活动(如DD…...
【iceberg】数据湖与iceberg调研与实战
文章目录 一. 为什么现在要强调数据湖1. 大数据架构发展历史2. Lambda架构与kappa架构3. 数据湖所具备的能力 二. iceberg是数据湖吗1. iceberg的诞生2. iceberg设计之table format从如上iceberg的数据结构可以知道,iceberg在数据查询时,1.查找文件的时间…...
xrdp多用户多控制界面远程控制
1、无桌面安装桌面(原本有ubuntu桌面的可以直接跳过这一步) Gnome 与 xfce 相比,xfce 由于其轻巧,它可以安装在低端台式机上。Xfce 优雅的外观,增强了用户体验,它对用户非常友好,性能优于其他桌…...
git会忽略我们工作改动中的大小写
在我们日常git工作中,我们对于文件名字的大小写修改正常是不会被git记录的 这是因为默认情况下git是不区分大小写的 这会导致一个问题,由于我们修改了文件名字的大小写,而对于文件之间相互依赖的导入代码没有对应修改 如果我们此时本地推送…...
SSL 自定义证书创建过程
1、生成自签名根证书和私钥 1.1 生成根证书 1.1.1生成根证书私钥 首先,生成一个自签名的根证书和私钥。这个根证书将作为信任锚(Trust Anchor),客户端会信任由这个根证书签署的所有证书。 openssl genrsa -out rootCA.key 204…...
javaSwing飞机订票系统
摘要 Java swing实现的飞机票预定系统,系统数据库原本采用的是Oracle,我又改了一个mysql版本的,所以这套系统有两个版本,一个是mysql数据库版的,一个是Oracle数据库版 一. 已经完成的功能 : …...
赶紧收藏!2024 年最常见 20道 Redis面试题(四)
上一篇地址:赶紧收藏!2024 年最常见 20道 Redis面试题(三)-CSDN博客 七、Pipeline有什么好处,为什么要用pipeline? Redis Pipeline 是一种批量执行命令的技术,它允许客户端一次性发送多个命令…...
虚拟列表 vue-virtual-scroller 的使用
npm 详情: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篇:深入理解重绘与重排 —— 概念、区别与实战演练 HTML渲染基础回顾重绘与重排的概念重绘(Repaint)重排(Reflow) 区别与影响实战示例:优化策略与代码演示示例1:避免…...
【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表
文章目录 C/C笔试练习选择部分(1)TCP(2)IP广播(3)ARP协议(4)IP路由器(5)MAC协议(6)三次握手(7)TCP/IP…...
线程的概念和控制
文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一…...
PHS树脂(聚对羟基苯乙烯)为KrF光刻胶专用树脂 本土企业具备百公斤级别量产能力
PHS树脂(聚对羟基苯乙烯)为KrF光刻胶专用树脂 本土企业具备百公斤级别量产能力 PHS树脂又称聚对羟基苯乙烯树脂、聚羟基苯乙烯树脂,指以对羟基苯乙烯作为基材制成的光刻胶树脂。与其他光刻胶树脂相比,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…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
