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

Redis面试 实战贴 后面持续更新链接

面试问题列表:
Redis支持哪些数据类型?各适用于什么场景?

Redis为什么采用单线程模型?优势与瓶颈是什么?

RDB和AOF持久化的区别?如何选择?混合持久化如何实现?

Redis缓存穿透、雪崩、击穿的解决方案?

如何用Redis实现分布式锁?RedLock算法的核心思想?Redisson的看门狗机制原理?

Redis内存淘汰策略有哪些?

Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?

Redis的过期键删除策略?

如何利用Redis实现延迟队列?

Redis的发布订阅模型有哪些缺点?

Redis集群主从复制的流程是怎样的?

Redis Sentinel如何实现高可用?

什么是脑裂问题?如何避免?

Redis Cluster的数据分片原理?为什么Redis Cluster不支持跨节点事务?Redis Cluster模式下如何实现跨节点事务?

集群如何扩容?数据迁移过程?

集群模式下,批量操作(如MSET)需要注意什么?

Codis与Redis Cluster的优缺点对比?Redis Cluster节点间通信协议?

Redis集群的Slot分配机制是什么?如何解决数据倾斜?

Redis的Hot Key自动发现与处理方案?

Redis大Key(Big Key)的优化策略?

Redis内存碎片率高的原因及解决方案?

Redis 6.0多线程模型如何工作?

如何设计一个二级缓存(Redis+Caffeine)架构?

Redis架构图

# Redis五大架构模式详解(图示+场景)## 1. 单机模式
```asciidoc
+-----------------+
| Redis单机实例    |
| (全量数据存储)    |
+-----------------+

特点
✅ 部署简单
✅ 数据全内存操作
❌ 无高可用保障
❌ 容量受单机限制

适用场景:开发测试环境


2. 主从复制架构

       +----------+        写请求| Master   | <───────┐+----------+         ││               │▼ 数据同步       │
+----------+  +----------+   │
| Slave1   |  | Slave2   | ←─┘ 读请求
+----------+  +----------+

核心机制
🔹 异步数据复制
🔹 读写分离(写Master→读Slave)
🔹 从节点可水平扩展

适用场景:读多写少业务


3. 哨兵模式(Sentinel)

        +--------------+| Sentinel集群 |+------+-------+│监控
+--------------+--------------+
| Master节点                  |
+--------------+--------------+│ 故障转移
+--------------+--------------+
| 新Master节点(原Slave提升)  |
+-----------------------------+

核心能力
🚨 自动故障检测与转移
📊 集群状态实时监控
🔀 客户端自动发现新Master

适用场景:需要高可用保障的生产系统


4. Cluster集群模式

+--------+    +--------+    +--------+
| 分片1   | ←→ | 分片2   | ←→ | 分片3   |
| (16384槽)|    | (16384槽)|    | (16384槽)|
+---+-----+    +---+-----+    +---+-----+│              │              │▼              ▼              ▼
+---+-----+    +---+-----+    +---+-----+
| 副本节点 |    | 副本节点 |    | 副本节点 |
+--------+    +--------+    +--------+

核心特性
🔧 数据自动分片(hash slot)
🌐 节点间Gossip协议通信
⚡ 支持水平扩展

适用场景:大数据量、高并发场景


5. 代理模式(Codis/Twemproxy)

+-----------------+
| 代理层           |
| (路由/负载均衡)   |
+-----+-----+-----+|     |     |
+-----+ +-----+ +-----+
| Redis组1 | Redis组2 | Redis组3
+---------+ +---------+ +---------+

优势
🛡️ 客户端无感知扩容
📡 支持多语言客户端
🔀 灵活的路由策略

适用场景:已有Redis集群的平滑迁移


架构选型指南

场景需求推荐架构
开发/测试单机模式
读多写少主从复制
7*24高可用哨兵模式
大数据量存储Cluster集群
旧集群迁移代理模式

相关文章:

Redis面试 实战贴 后面持续更新链接

面试问题列表&#xff1a; Redis支持哪些数据类型&#xff1f;各适用于什么场景&#xff1f; Redis为什么采用单线程模型&#xff1f;优势与瓶颈是什么&#xff1f; RDB和AOF持久化的区别&#xff1f;如何选择&#xff1f;混合持久化如何实现&#xff1f; Redis缓存穿透、雪…...

搭建spark yarn 模式的集群

搭建Spark YARN模式集群步骤 1. 环境准备 系统&#xff1a;采用Linux系统&#xff08;如Ubuntu、CentOS &#xff09;&#xff0c;借助ntp实现节点间时间同步&#xff0c;关闭防火墙及SELinux。 Java&#xff1a;安装JDK 8及以上版本&#xff0c;配置JAVA_HOME环境变量。 H…...

静态库和动态库的区别

简而言之&#xff1a;静态库是.o文件&#xff0c;是直接编译到进程里面的&#xff0c;其他的进程不能使用&#xff0c;动态库是.so文件&#xff0c;是放到linux的文件系统里面的&#xff0c;在程序运行的时候去拿来调用&#xff0c;所以多个进程都能访问 # Linux中的静态库与动…...

Relay算子注册

TVM 卷积算子注册代码深度解析 源码位置&#xff1a;src/relay/op/nn/convolution.cc 作用&#xff1a;conv2d等算子的注册实现 TVM_REGISTER_NODE_TYPE(Conv2DAttrs);TVM_REGISTER_GLOBAL("relay.op.nn._make.conv2d").set_body_typed([](Expr data, Expr weight,…...

俄罗斯电商市场:增长与变革中的新势力崛起

近年来&#xff0c;全球跨境电商市场格局正经历深刻变革&#xff0c;东南亚、非洲、拉美和中东等新兴市场凭借人口红利和互联网渗透率提升&#xff0c;成为国际电商企业竞相争夺的蓝海。然而&#xff0c;在这场全球化的电商浪潮中&#xff0c;俄罗斯市场正以惊人的增速和独特的…...

HHsuite3 的 HHblits 和 HHsearch比较

HHblits 与 HHsearch 的核心区别及远源同源检测能力对比 一、核心功能与定位差异 特征HHblitsHHsearch核心目标快速迭代搜索,构建高质量多序列比对(MSA)和 Profile HMM,用于大规模序列聚类与初步同源筛选。高精度 Profile HMM-HMM 比对,用于深度同源检测与结构 / 功能预测…...

C++(1)

一、从 C 到 C 1、引用&#xff08;掌握&#xff09; 1.1 概念 别名机制&#xff1a;引用本质上是对变量的一种别名&#xff0c;它就像变量的另一个名字&#xff0c;对引用的操作实际上就是对原变量的操作。从底层实现来看&#xff0c;引用可能是通过指针来实现的&#xff0…...

Android组件化 -> Debug模式下,本地构建module模块的AAR和APK

本地构建module模块的AAR gradle.properties isCommonApp false模块的build.gradle apply plugin: com.android.library&#xff1a;module模块编译manifest.srcFile src/main/AndroidManifest.xml&#xff1a;读取没有启动App和Activity的配置文件 if (isCommonApp.toBoo…...

“wsl --install -d Ubuntu-22.04”下载慢,中国地区离线安装 Ubuntu 22.04 WSL方法(亲测2025年5月6日)

从中国地区通过 wsl --install 或 Microsoft Store 安装 WSL 发行版&#xff08;如 Ubuntu&#xff09;时&#xff0c;下载速度往往非常慢&#xff0c;甚至卡在 0% 很久。这是因为微软服务器在国内访问速度受限。 以下是几种 解决方法&#xff0c;可加快 WSL 发行版&#xff0…...

CAN报文中的标准帧和扩展帧

目录 1. 标准帧&#xff08;Standard Frame&#xff09; 2. 扩展帧&#xff08;Extended Frame&#xff09; 3. 核心区别 4. 如何区分标准帧与扩展帧&#xff1f; 5. 应用场景 6. 注意事项 在CAN&#xff08;Controller Area Network&#xff09;总线协议中&#xff0c;标…...

使用AI应用开发平台搭建夸奖机器人,玩转AI【COZE入门案例-第1课】

Coze Coze是字节跳动旗下的产品,更注重用户友好性和C端场景优化。其主要特点包括: ‌快速部署‌:Coze提供拖拽式界面和丰富的插件(如天气查询、电商导流工具),适合快速搭建对话机器人和轻量化应用‌。‌生态集成‌:Coze依托字节生态,支持与飞书、抖音等平台的无缝集成…...

二叉树—中序遍历—非递归

初始状态 假设当前从根节点 b 开始&#xff0c;此时栈为空 。 第一步&#xff1a;处理根节点 b 的左子树 调用 goAlongLeftBranch 函数&#xff0c;从节点 b 开始&#xff0c;因为 b 有左子树&#xff08;节点 a &#xff09;&#xff0c;将 b 入栈&#xff0c;此时栈&#…...

空间内任意点到直线和平面的距离推导

前言 点到直线&#xff0c;点到面的距离公式的手工推导。很久没有数学推导了&#xff0c;再试一把。 一、初步推导 二、转换为标准的形式 三、两种特殊情况的验证 四、推广到3维的情况 结束语 可能从向量的角度来推导&#xff0c;更加的便捷。很多数学知识都忘记了&#xff0c;…...

代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串

代码随想录算法训练营第九天 |【字符串】151.翻转字符串里的单词、卡码网55.右旋转字符串、28.实现strStr、459.重复的子字符串 151.翻转字符串里的单词 思路 我的想法是模拟&#xff0c;用状态机拾取单词&#xff0c;然后存到双重数组中&#xff0c;再反向读取输出状态机有…...

Unity学习笔记二

文章目录 3D数学公共计算结构体Mathf常用成员三角函数 向量Vector3基本成员点乘叉乘插值运算 四元数引出基本概念Quaternion结构体成员四元数运算 更多的Mono延迟函数协同程序多线程相关协程概念辨析协程本体协程调度器 Resources资源动态加载特殊文件夹Resources同步加载Resou…...

tp8+swoole搭建

1、根据官方文档下载tp8.1.2. php>8,tp8的运行界面已经不是初心不改了。而是值得托付。 composer create-project topthink/think tp8swoole cd tp8swoole composer require topthink/think-swoole 2、下载thinkswoole captcha,image,migration,queue,不要要template和v…...

Android Retrofit框架分析(三):自动切换回主线程;bulid的过程;create方法+ServiceMethod源码了解

目录 Okhttp有什么不好&#xff1f;bulid的过程create方法ServiceMethodcall enqueue的过程为什么要学习源码呢&#xff1f; 一、Okhttp有什么不好&#xff1f; Okhttp本身来说&#xff0c;是一个挺好的网络框架&#xff0c;但&#xff0c;对于开发者而言&#xff0c;使用起…...

FPGA----基于ZYNQ 7020实现petalinux文件持久化存储

引言&#xff1a;由于当前的 PetaLinux 系统使用了临时的内存文件系统&#xff08;initramfs&#xff09;&#xff0c;导致每次重启后所有更改&#xff08;包括安装的 EPICS&#xff09;都会丢失。为了解决这个问题&#xff0c;您需要将根文件系统&#xff08;rootfs&#xff0…...

【STM32项目实战】一文了解单片机的SPI驱动外设功能

前言&#xff1a;在前面我有文章介绍了关于单片机的SPI外设CUBEMX配置&#xff0c;但是要想使用好SPI这个外设我们还必须对其原理性的时序有一个详细的了解&#xff0c;所以这篇文章就补充一下SPI比较偏向底层的时序性的逻辑。 1&#xff0c;SPI简介 SPI是MCU最常见的对外通信…...

C++学习之路,从0到精通的征途:priority_queue类的模拟实现

目录 一.priority_queue的介绍 二.仿函数 1.仿函数的介绍 2.仿函数的特点 3.实现两个简单的仿函数 三.priority_queue的接口实现 1.成员变量 2.push 3.pop 4.top 5.size 6.empty 7.构造函数 四.代码总览 priority_queue.h test.cpp 一.priority_queue的介绍 源…...

智能交互电子沙盘,重塑未来指挥体系‌

在军事演习室、应急指挥中心或城市规划馆中&#xff0c;传统沙盘曾是不可或缺的工具。然而&#xff0c;随着数字化浪潮席卷&#xff0c;“纸上谈兵”式的静态模型已无法满足现代指挥对实时性、交互性、立体化的需求。智能交互电子沙盘系统应运而生&#xff0c;它融合了GIS地理信…...

银河麒麟安装QT

1、从官网现在安装包 上述是商业版&#xff0c;免费版如下&#xff0c;有两种可以选择&#xff0c;分别是Linux x64 和 LinuxARM64 . 然后在线安装即可&#xff0c;和Windows系统安装步骤一样。...

Vue 实现 Hls、Flv 协议视频播放

在当今的互联网内容生态中&#xff0c;视频已成为重要的信息传播载体。Hls&#xff08;HTTP Live Streaming&#xff09;和 Flv&#xff08;Flash Video&#xff09;作为广泛使用的视频传输协议&#xff0c;分别在移动端和 Web 端有着出色的表现。对于使用 Vue 框架进行开发的项…...

javascript:void(0) 是一个常见的 JavaScript 伪协议

javascript:void(0) 是一个常见的 JavaScript 伪协议&#xff0c;下面从几个方面详细解释其含义和用途。 基本含义 javascript: 是一种伪协议&#xff0c;它告诉浏览器后面跟随的是一段 JavaScript 代码。void 是 JavaScript 中的一个操作符&#xff0c;void(0) 的作用是对给…...

suna界面实现原理分析(三):Terminal工具调用可视化

suna目前的agent执行可视化界面主要有个实时界面&#xff0c;一个是前面介绍的浏览器访问界面&#xff0c;分析参考&#xff1a;suna工具调用可视化界面实现原理分析&#xff08;二&#xff09;-CSDN博客 下面的Terminal界面&#xff0c;对应的分析参考&#xff1a; 前端知识-…...

ai大模型学习1

一、监督学习&#xff1a;老师带学生的模式 ‌核心机制‌&#xff1a;模型像学生一样&#xff0c;通过“带答案的习题”&#xff08;即带标签的数据集&#xff09;学习规律。例如&#xff0c;给模型看1000张标有“猫”“狗”的图片&#xff0c;让它学会区分两者的特征24。 ‌典…...

精益数据分析(43/126):媒体网站商业模式的盈利与指标解析

精益数据分析&#xff08;43/126&#xff09;&#xff1a;媒体网站商业模式的盈利与指标解析 在创业和数据分析的学习旅程中&#xff0c;我们不断探索各种商业模式的奥秘&#xff0c;今天让我们一同深入《精益数据分析》&#xff0c;聚焦媒体网站商业模式&#xff0c;剖析其盈…...

深度学习:图神经网络GNN、GCN及其在推荐系统的应用

什么是图&#xff08;Graph&#xff09;&#xff1f; 在数学和计算机科学中&#xff0c;图 (Graph) 是一种抽象数据结构&#xff0c;用于表示对象之间的成对关系。一个图通常定义为一个有序对 G (V, E)&#xff0c;其中&#xff1a; V 是 顶点 (Vertices) 或 节点 (Nodes) 的…...

深入理解 Web 架构:从基础到实践

文章目录 引言一、Web 架构基础概念客户端 - 服务器模型HTTP 协议 二、常见 Web 架构模式单体架构微服务架构 三、Web 架构常见问题及解决方法性能问题安全问题 四、Web 架构思维导图五、总结 引言 在当今数字化的时代&#xff0c;Web 应用无处不在。无论是社交媒体平台、电子商…...

蓝桥杯-通电(最小生成树java)

题目 思路 这道题其实也挺容易看出来是最小生成树的。我当时做的时候确实是能看出来是考的最小生成树&#xff0c;union()&#xff0c;find()那些方法我也能写出来&#xff0c;但是&#xff0c;我完全不知道怎么去利用给你的输入数据&#xff0c;去求解题目&#xff0c;也就是知…...

代码随想录算法训练营第60期第二十八天打卡

今天我们继续回溯算法章节&#xff0c;昨天我们重点讲的是组合问题&#xff0c;我们完美使用递归三部曲以及递归回溯相结合的方法来解决&#xff0c;当然昨天最有难度的还是去重操作&#xff0c;那个大家要多思考一下&#xff0c;那么今天我们就继续探讨回溯算法。 第一题对应…...

vscode远程服务器连接----过程尝试写入的管道不存在

通过跳板机连接远程服务器时&#xff0c;报错---过程尝试写入的管道不存在 过程尝试写入的管道不存在报错解决报错内容解决方法1. 测试网络连接连接是否正常2. 检查跳板机并打开权限3. 通过跳板机登录到目标服务器4.配置文件范例 注&#xff1a;校外连接学校内网服务器报错 过程…...

C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)

C - 仿 RabbitMQ 实现消息队列&#xff08;1&#xff09;&#xff08;环境搭建&#xff09; 什么是消息队列核心特点核心组件工作原理常见消息队列实现应用场景优缺点 项目配置开发环境技术选型 更换软件源安装一些工具安装epel 软件源安装 lrzsz 传输工具安装git安装 cmake安装…...

多模态核心模型

1.BLIP的原理? BLIP是一种统一视觉语言理解和生成的预训练模型。BLIP的特点在于它采用了一种编码器-解码器混合架构&#xff08;MED)&#xff0c;并且引入了CapFilt机制来提高数据质量和模型性能。BLIP的主要组成部分包括&#xff1a; MED架构&#xff1a;包括单模态编码器、…...

Kubernetes笔记(1)Kubernetes入门

Kubernetes入门 一、容器技术二、Kubernetes介绍1. Kubernetes核心资源2. Kubernetes集群架构2.1 Master2.2 Node 一、容器技术 随着技术发展&#xff0c;应用程序的部署经历了从物理机到虚拟机&#xff0c;再到容器的转变。 物理机&#xff1a;物理机会运行多个程序&#xf…...

【coze】意图识别(售前售后问题、搜索引擎去广告)

【coze】&#xff08;售前售后问题、搜索引擎去广告&#xff09; 1、创建意图识别工作流&#xff08;1&#xff09;创建工作流&#xff08;2&#xff09;添加意图识别节点&#xff08;3&#xff09;配置意图识别节点&#xff08;4&#xff09;运行看效果&#xff08;5&#xff…...

Vue3 中用 canvas 封装抽奖转盘组件:设定中奖概率及奖项图标和名称

在 Web 应用开发中&#xff0c;抽奖功能是提升用户参与度的常用手段。使用 Vue3 结合 canvas 技术&#xff0c;我们可以轻松实现一个高度自定义的抽奖转盘组件&#xff0c;不仅能设定中奖概率&#xff0c;还能灵活配置奖项图标和名称。本文将详细介绍该组件的实现原理、步骤&am…...

vue3+vite+AI大模型实现谷歌插件-web诊断

vue3viteAI大模型实现谷歌插件-web诊断 一、前言二、实现思路1、功模块构图2、数据交互图 三、技术栈简介1、Web端2、服务端 四、主要功能实现1、Web端【1】谷歌插件vue全局配置文件【2】加载web诊断工具至当前页面【3】全局捕获异常错误 2、Server端【1】websock管理模块【2】…...

高频PCB设计如何选择PCB层数?

以四层板为例&#xff0c;可以第一层和第二层画信号&#xff0c;作为信号层。 第三层可以走电源&#xff0c;然后第四层走GND 但是更可以第一层和第三层画信号。第二层可以走电源&#xff0c;然后第四层走GND 用中间的电源层以及地层可以起到屏蔽的作用&#xff0c;有效降低寄…...

第100+40步 ChatGPT学习:R语言实现多轮建模

回顾一下什么叫多轮建模&#xff1a; 要综合判断一个模型好不好&#xff0c;一次随机抽样是不行的&#xff0c;得多次抽样建模&#xff0c;看看整体的性能如何才行&#xff08;特别是对于这种小训练集&#xff09;。 所以我的思路是&#xff0c;随机抽取训练集和验证集2000次…...

DolphinScheduler-3.2.0集群部署教程

详见&#xff1a; DolphinScheduler-3.2.0集群部署教程Centos7 DolphinScheduler集群部署...

如何设计Kafka的高可用跨机房容灾方案?(需要实战,未实战,纯理论)

1. 双活多中心架构设计 startuml 机房A <--> [Kafka Cluster A] : 万兆光纤 机房B <--> [Kafka Cluster B] : 专线网络 机房C <--> [Kafka Cluster C] : VPN隧道[Kafka Cluster A] <-.-> [Kafka Cluster B] : MirrorMaker2双向镜像 [Kafka Cluster B]…...

[人机交互]协作与通信的设计

零.要点 – 解释协作与通信的含义 – 描述人们在协作与通信中使用的社会机制的主要类型 – 概述存在的各种群件系统 – 讨论学科研究和与社交相关的理论&#xff0c;对设计的启示 一.解释协作与通信的含义 1.1什么是通信 通信是个体之间的信息交换的过程 – 按照所 交换信息的…...

LXwhat-嘉立创

一 电路板简介 什么是PCB? 印刷电路板 什么是SMT? 表面贴装技术 有关电路板的几个专业名词 覆铜腐蚀走线多层板 为什么要画电路板? 杜邦线:接线杂乱、虚接、有可能短路洞洞板:考验焊功(虚焊)、异型元器件不适配自己画板:整齐有序、适配异型元器件、紧凑优雅、有成就感(输…...

决 策 树

1 决策树模型 假如你正在运营一家猫咪领养中心&#xff0c;并拥有一些特征数据&#xff0c;你想训练一个分类器来快速判断一只动物是否为猫。这里有十个训练样本&#xff0c;有关于动物耳朵形状、面部形状、是否有胡须的特征&#xff0c;你想要预测这种动物是否为猫&#xff1…...

ts axios中报 Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘

ts语法有严格的格式&#xff0c;如果我们在处理响应数据时&#xff0c;出现了axios响应中非默认字段&#xff0c;就会出现标题那样的警告&#xff0c;我们可以通过创建axios.dt.ts解决这个问题 下面是我在开发中遇到的警告&#xff0c;code并不是axios默认返回的字段&#xff0…...

【AI】用AI将文档、文字一键生成PPT的方法(百度的自由画布版)

前提&#xff1a; 最近看了个书&#xff0c;周末要参加读书会&#xff0c;要分享这本书的内容。一般来说&#xff0c;我都是写好了内容文档&#xff0c;然后在网上找一些模板套上去。 最近发现&#xff0c;有些网站已经可以按照文档&#xff0c;自动生成PPT模板了&#xff0c;里…...

爬虫技术-利用Python和Selenium批量下载动态渲染网页中的标准文本文件

近日工作需要整理信息安全的各项标准文件&#xff0c;这些文件通常发布在在官方网站&#xff0c;供社会各界下载和参考。 这些页面中&#xff0c;标准文本文件常以Word&#xff08;.doc/.docx&#xff09;或PDF格式提供下载。由于文件数量庞大&#xff0c;手动逐条点击下载效率…...

CUDA编程 - 如何在 GPU 上使用 C++ 函数重载 - cppOverload

这里写目录标题 一、完整代码与例程目的二、代码拆解与复用​ 2.1、函数重载​​&#xff1a;​ 2.2、函数指针声明​​&#xff1a;​ 2.3、函数指针赋值与内核启动​​&#xff1a;​ 2.4、CUDA API调用​​&#xff1a;2.4.1、cudaFuncSetCacheConfig&#xff1a;2.4.2、cud…...

AI教你学VUE——Gemini版

前端开发学习路线图 (针对编程新手&#xff0c;主攻 Vue 框架) 总原则&#xff1a;先夯实基础&#xff0c;再深入框架。 想象一下建房子&#xff0c;地基不牢&#xff0c;上面的高楼&#xff08;框架&#xff09;是盖不起来的。HTML、CSS、JavaScript 就是前端的地基。 阶段一…...