Redis面试题12
Redis 的主从复制是什么?
Redis 的主从复制是一种数据备份和高可用性机制,通过将一个 Redis 服务器的数据复制到其他 Redis 从服务器上来实现数据的冗余备份和读写分离。
主从复制的工作原理如下:
- 配置主服务器并开启主从复制功能。
- 从服务器连接到主服务器,并发送 SYNC 命令。
- 主服务器将快照文件(RDB 文件)和增量数据发送给从服务器,从服务器加载快照数据并处理增量数据,完成初次复制。
- 当主服务器的数据发生变化时,主服务器将变化的命令发送给从服务器进行更新。
- 从服务器周期性地向主服务器发送命令请求,获取最新的数据变化。
主从复制的优点包括:
- 数据冗余备份:通过复制数据到从服务器,可以提高数据的可靠性和容灾能力。
- 负载均衡:从服务器可以处理读请求,分担主服务器的读写压力,提高系统的并发处理能力。
- 故障恢复:当主服务器发生故障时,可以将一个从服务器切换为新的主服务器,实现快速的故障恢复。
主从复制在实际应用中广泛用于数据备份、读写分离、高可用性等场景。
Redis 的集群模式是什么?
Redis 的集群模式是一种分布式的数据存储和高可用性解决方案,通过将数据分布到多个节点上来实现数据的横向扩展和故障容错。
Redis 集群模式的特点包括:
- 数据分片:集群将数据划分为多个槽(slot),每个槽对应一个 Redis 节点存储数据。
- 分布式节点:集群由多个主节点和从节点组成,每个主节点负责若干个槽的数据存储,从节点用于复制主节点的数据。
- 故障转移:当主节点发生故障时,集群会通过选举机制从从节点中选出新的主节点,实现快速的故障恢复。
- 自动迁移:当集群的节点数发生变化时,集群会自动进行数据迁移,实现动态的容量调整。
Redis 集群模式可以提供数据的高可用性和扩展性,广泛用于大规模数据存储和处理场景。
Redis 的持久化机制有哪些?
Redis 的持久化机制主要包括 RDB(Redis Database)和 AOF(Append Only File)两种方式。
- RDB 持久化:将 Redis 数据在某个时间点的快照以二进制形式保存到磁盘上,通过反序列化将数据恢复到内存中。RDB 持久化可以通过配置文件设置定期(如每隔一段时间)或在满足一定条件(如一定数量的写操作)时进行。
- AOF 持久化:将 Redis 的写命令追加到一个文件(AOF 文件)中,每条命令以文本形式保存。通过重放命令来恢复数据。AOF 持久化可以通过配置文件设置定期(如每秒钟)或在满足一定条件(如一定数量的写操作)时进行。
RDB 持久化具有高效性和紧凑性,适合备份数据和周期性快照的情况;AOF 持久化则具有即时性和可靠性,适合数据重放以及对于数据的实时持久化和故障恢复的需求。在实际应用中,可以根据业务需求选择适合的持久化方式,或者同时使用 RDB 和 AOF 两种方式来提供多层次的数据保护。
Redis 的缓存失效策略有哪些?
Redis 的缓存失效策略主要包括以下几种:
- 定时过期:可以在设置键的同时指定一个过期时间,Redis 会在到达过期时间时自动删除键。
- 惰性过期:当访问某个键时,Redis 会先检查该键是否过期,如果过期则删除,否则返回键的值。这种策略可以减轻定时过期的压力,但会增加每次访问的开销。
- 定期过期:Redis 使用一种被称为“定期删除”的策略来处理过期键。它会每隔一段时间检查一部分的过期键,并删除其中已过期的键。
- 客户端请求时删除:当某个键过期后,如果有客户端请求访问该键,Redis 会立即将它删除,并返回空值。这种策略可以确保过期键不会返回给客户端,但可能会降低性能。
Redis 的内存淘汰策略有哪些?
当 Redis 内存不足时,需要采取一定的淘汰策略来删除部分键值对以释放内存。常见的内存淘汰策略包括:
- LRU(Least Recently Used)最近最少使用算法:删除最近最少使用的键值对,即在一段时间内最少被访问到的键值对。
- LFU(Least Frequently Used)最不经常使用算法:删除访问频率最低的键值对,即在一段时间内被访问次数最少的键值对。
- Random 随机算法:随机选择键值对进行删除,是一种简单的内存淘汰策略。
- TTL(Time To Live)过期时间算法:删除键的剩余时间最短的键值对。这种策略用于删除具有较短生命周期的键值对。
可以根据具体的业务场景和性能需求选择合适的内存淘汰策略。同时,Redis 还提供了手动删除键值对的命令,可以根据实际情况进行操作。
Redis 的事务机制是什么?
Redis 的事务机制可以将一系列 Redis 命令组合成一个原子操作,要么全部执行,要么都不执行。事务通过 MULTI、EXEC、DISCARD 和 WATCH 等命令来实现。
- MULTI 命令用于开启一个事务。
- EXEC 命令用于执行事务中的所有命令。
- DISCARD 命令用于取消当前事务。
- WATCH 命令用于在事务执行前监视一个或多个键的变化,如果被监视的键被修改,则事务将被取消。
Redis 的事务是在服务器端执行的,客户端只需将一系列命令包装好发送给服务器即可。事务的执行是原子的,但不保证事务执行过程中的并发性。在事务中,如果某个命令执行出错,不会影响其他命令的执行,最终结果会返回给客户端。
相关文章:
Redis面试题12
Redis 的主从复制是什么? Redis 的主从复制是一种数据备份和高可用性机制,通过将一个 Redis 服务器的数据复制到其他 Redis 从服务器上来实现数据的冗余备份和读写分离。 主从复制的工作原理如下: 配置主服务器并开启主从复制功能。从服务器…...
el-tree多个树进行节点同步联动(完整版)
2024.1.11今天我学习了如何对多个el-tree树进行相同节点的联动效果,如图: 这边有两棵树,我们发现第一个树和第二个树之间会有重复的指标,当我们选中第一个树的指标,我们希望第二个树如果也有重复的指标也能进行勾选上&…...
python两个字典合并,两个list合并
1.两个字典: a{‘a’:1,‘b’:2,‘c’:3} b {‘aa’:11,‘bb’:22,‘cc’:33} 合并1:dict(a, **b) 结果:{‘a’: 1,‘aa’: 11,‘c’: 3,‘b’: 2,‘bb’: 22,‘cc’: 33} 合并2:dict(a.items()b.items()) 结果:{‘…...
搜维尔科技:【简报】元宇宙数字人赛道,《全息影像技术应用》!
期待着看展的主角来到今天要参观的全息影像展,平时就喜欢看展的她对于所谓的全息影像非常好奇,于是她带着期待的心情进入展内。进入展内的主角看到的是与之前完全不同的画展,每幅画看起来就像真的一样,充满好奇的她在展览的各处游…...
SparkSQL和Hive语法差异
SparkSQL和Hive语法差异 1、仅支持Hive SparkSQL关联条件on不支持函数rand()创建零时表时,Spark不支持直接赋值nullSpark无法读取字段类型为void的表SparkSQL中如果表达式没有指定别名,SparkSQL会将整个表达式作为别名,如果表达式中包含特殊…...
XCODE IOS 静态链接库替换升级
XCODE 版本15.2. 一个很久需求没更新的IOS 应用,近来有新需求要开发。 拉下代码运行,出现了个BAD_ACCESS错误。出错的位置位于一个调用的第三方的.a静态库内部。因为调用代码并没有修改,很容易想到可能XCODE相关升级,导致的问题。…...
API设计:从基础到优秀实践
在这次深入探讨中,我们将深入了解API设计,从基础知识开始,逐步进阶到定义出色API的最佳实践。 作为开发者,你可能对许多这些概念很熟悉,但我将提供详细的解释,以加深你的理解。 API设计:电子商…...
路由的安装顺序
安装前端路由的顺序通常如下: 安装前端框架:选择并安装适合你的项目的前端框架,如React、Vue或Angular等。 创建路由配置文件:在项目根目录下创建一个路由配置文件,比如router.js或routes.js等,用于定义路…...
华为OD机试真题-围棋的气--Java-OD统一考试(C卷)
题目描述: 围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19x19=361个交点,对弈双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知: …...
CANFD数据记录仪在新能源汽车复杂路测下的应用
CANFD数据记录仪在新能源汽车复杂路测下的应用 汽车制造商在生产预批量阶段的耐久性测试中,为了检测潜在故障,必须让车辆在严酷的路况和环境下接受测试。为确保能回溯故障发生的现场情况,我们需要对测试数据精准记录与储存。这些数据是新车型优化迭代的关键,也是确保产品质量的…...
java: 5-6 break
文章目录 1. break1.1 介绍1.2 语法和流程图1.3 入门练习1.4 细节说明1.5 练习 【老韩视频p137-】 1. break 看个需求:随机生成 1-100 的一个数,直到生成了 97 这个数,看看你一共用了几次? 【思路分析:循环,但是循环的次数不知道…...
如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问
文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…...
响应式编程Reactor API大全(上)
Reactor 是一个基于响应式编程的库,主要用于构建异步和事件驱动的应用程序。Reactor 提供了丰富的 API,包括创建、转换、过滤、组合等操作符,用于处理异步数据流。以下是一些 Reactor 的主要 API 示例: pom依赖 <dependencyMan…...
vue3自定义指令
一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。 页面内创建自定义指令 下面是一个自定义指令的例子,当一个 input 元素被 Vue 插入到 DOM 中后,它会被自动聚焦: <script setu…...
ECharts 多季度连续显示到一个图中。
效果图 二.相关option 以下option可以复制到 echarts的编辑器 进行查看修改 const site test1; const site2 test2;const qtrlyOption function (data: any, titleText: string): any {//获取最大值 。最大最小值的目的是:使左右里边的所有bar使用同一个指标let …...
【Microsoft Copilot】手机端发布 ——GPT-4, DALL-E3 免费用
Microsoft Copilot 关于Microsoft CopilotMicrosoft Copilot 的特点1. 可以在手机端使用:2. 可以免费使用GPT-4。3. 可以无限制地使用GPT-4。4. 可以使用DALL-E3生成图片。5. 搜索功能6. 图像识别 Microsoft Copilot的缺点和注意事项1. 非常容易报错2. 不支持长篇聊…...
[蓝桥杯 2013 省 AB] 错误票据
题目背景 某涉密单位下发了某种票据,并要在年终全部收回。 题目描述 每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造…...
IDEA GitHub令牌原理(Personal Access Token)
1.IDEA的add github account 是什么原理? 在IntelliJ IDEA中添加GitHub账户,主要是为了让IDEA能够与GitHub进行交互,如克隆GitHub上的仓库,提交代码到GitHub等。其基本原理如下: 用户在IDEA中输入GitHub的用户名和密…...
[开发语言][python][c++]:C++中的this指针和Python中的Self -- 26岁生日
C中的this指针和Python中的Self 1. python中的Self2. C中的this指针3. C中的this指针和Python中self的异同点: 以朋友的新岁祝福开篇,祝笔者也祝大家☺️: 一岁一礼 一寸欢喜且喜且乐 且以永日 From VardoZ癸卯年十一月廿六(兔年)之…...
Android Traceview 定位卡顿问题
Traceview 是一个 Android 性能分析工具,用于时间性能分析,主要帮助开发者了解应用程序中各个方法的执行时间和调用关系。Traceview 可以通过图形化界面查看应用程序的代码执行细节,包括每个方法的调用次数、方法调用的时间消耗、方法调用堆栈…...
大数据在电力行业应用案例解析 -【电力技术】(25)RPA 在电力业扩报装中的自动化应用与实现
目录 一、引言:业扩报装的效率瓶颈 二、RPA 技术特点与电力适用性 三、RPA 在业扩报装中的四大核心应用场景 3.1 预受理自动审核 3.2 批量用户信息自动导入 3.3 勘查工单自动派工 3.4 流程自动流转与归档 四、RPA 实施流程(标准化) 五、典型应用成效 六、完整可运行…...
软考缺考率超 50%?学长扒一扒易弃考的 7 类人,弃考后果别忽视
考软考的小伙伴应该都发现了一个现象:每次报名的人乌泱泱一大片,但真正走进考场的人却少了一大半,部分地区的缺考率甚至直接超了 50%。作为考过软考的学长,今天就跟大家好好聊聊,那些最后放弃考试的人,大多…...
基于PostGIS与SpringBoot构建高性能动态MVT矢量瓦片服务
1. 为什么需要动态矢量瓦片服务 第一次接触矢量瓦片是在2018年做智慧城市项目时,当时前端同事抱怨加载行政区划数据太慢。一个省级行政区划的GeoJSON文件大小超过10MB,每次打开网页都要等半天。后来尝试了Mapbox的矢量瓦片方案,加载速度直接提…...
YimMenu:GTA V安全防护与体验增强工具完全指南
YimMenu:GTA V安全防护与体验增强工具完全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
从VGG到ResNet:我是如何用PyTorch复现经典,并理解‘残差’如何拯救了深度学习的
从VGG到ResNet:用PyTorch复现经典,理解残差如何重塑深度学习 2014年ImageNet竞赛冠军VGG网络将深度卷积神经网络推向了19层的里程碑,但研究者们很快发现:单纯堆叠更多层数反而会导致模型性能下降。这种现象被称作"网络退化&q…...
英飞凌TC3xx SMU模块实战:如何配置看门狗超时自动复位(附寄存器详解)
英飞凌TC3xx SMU模块实战:如何配置看门狗超时自动复位(附寄存器详解) 在汽车电子和工业控制领域,系统稳定性是生死攸关的指标。想象一下,当你的ECU在高速公路上以120km/h运行时突然死机,或者工业机器人正在…...
Kandinsky-5.0-I2V-Lite-5s多场景应用:社交头像动效、PPT动态配图、电子相册生成
Kandinsky-5.0-I2V-Lite-5s多场景应用:社交头像动效、PPT动态配图、电子相册生成 1. 认识Kandinsky-5.0-I2V-Lite-5s Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型,它能将静态图片转化为动态视频。你只需要上传一张首帧图片,再补充一…...
抖音下载器技术解析:突破平台限制的高效内容获取方案
抖音下载器技术解析:突破平台限制的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...
利用Cosmos-Reason1-7B进行Java面试题智能解析与答案生成
利用Cosmos-Reason1-7B进行Java面试题智能解析与答案生成 最近在帮朋友准备Java面试,发现一个挺普遍的问题:网上的面试题答案要么太零散,要么太浅显,很难找到一个能讲透原理、还能分析源码的深度解析。自己整理吧,费时…...
3个维度玩转League-Toolkit:从入门到精通的实战指南
3个维度玩转League-Toolkit:从入门到精通的实战指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是…...
