Redis面试题及核心知识点讲解

  1. redis是单线程还是多线程?

redis是单线程的,主要是指网络I/O线程。Redis的持久化,集群同步等操作,则由另外的线程来执行。

2 . redis是单线程,为什么处理这么快?
Redis的大部分操作都是在内存中完成。单线程模型避免了多线程之间的竞争,redis采用了I/O多路复用机制处理大量的客户端Socket请求。

  1. redis版本差异
    redis4.0版本之后,Redis添加了多线程的支持,但这时的多线程主要体现在大数据的异步删除 功能上。
    redis6.0版本之后,新增了多线程I/O的读写并发能力。

4 redis是怎么实现数据不丢失的?怎么实现服务高可用的 ?
为了保证数据不丢失,要把内存中的数据存储到磁盘,以便缓存服务器重启之后,还能够从磁盘中恢复原有的数据,这个过程就是redis的持久化。
Redis持久化的三种方式:
在这里插入图片描述

1)AOF的日志如何实现
在这里插入图片描述

  1. Redis为什么先执行命令 ,再把数据写入日志?
    在这里插入图片描述
    也会带来风险
    1)数据可能会丢失
    2)可能阻塞其他操作

2、RDB快照如何实现?
为了解决AOF做故障恢复时操作缓慢这个问题,Redis增加了内存快照的操作,即可以可靠,又能在宕机时快速恢复。

RDB记录redis某一时刻的数据,不像AOF那样 记录操作,所以在 数据恢复的时候。只需要把RDB文件读如内存,完成快速恢复。

  1. RDB做快照时会阻塞线程吗 ?
    save会导致阻塞,bgsave不会阻塞线程。在这里插入图片描述
  2. RDB做快照的时候,数据能修改吗?
    可以修改,利用了bgsave的子进程。
    1)如果主线程,执行读操作,则主线程和bgsave子进程互相不影响
    2)如果主线程,执行写操作,则被修改的数据会复制一份副本,然后bgsave子进程会把该副本数据写入RDB文件,在这个过程中,主线程仍然可以直接修改原来的数据。
    在这里插入图片描述
    在Redis4.0之后,增加了AOF和RDB混合的数据持久化机制,把数据以RDB的方式写入文件,再将后续的操作命令以AOF的格式存入文件,既保证了redis的重启速度,又降低数据丢失风险。

在这里插入图片描述

  1. redis如何实现服务高可用?
    1)主从同步。 2)哨兵模式 3)redis集群模式
  2. 主从同步(主从复制)

在这里插入图片描述

  1. 哨兵模式
    在这里插入图片描述
  2. redis集群
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑进水无法开机怎么办 电脑进水开不了机的解决方法

意外总是会不定时打破你的计划,电脑这类电器最怕遇到的除了火还有水,设备进水会导致数据丢失,那么我们遇到电脑进水怎么办?进水之后不正确处理也会引起很多不必要的麻烦. 解决办法 第一步:关机 如果您的电脑是在开…

山西电力市场日前价格预测【2024-02-22】

日前价格预测 预测说明: 如上图所示,预测明日(2024-02-22)山西电力市场全天平均日前电价为441.87元/MWh。其中,最高日前电价为680.73元/MWh,预计出现在18:45。最低日前电价为352.02元/MWh,预计…

【git 使用】git 中head、工作树、和索引分别是什么,有什么关系和区别

HEAD 定义:HEAD 是指向当前所在分支(或者是某个特定的提交)的指针,它表示当前工作目录正在处于哪个提交或分支上。作用:HEAD 指示了当前工作目录的状态,可以通过 HEAD 来确定当前处于哪个分支上&#xff0…

正交匹配追踪算法(Orthogonal Matching Pursuit)实现过程及Python模拟

正交匹配追踪(Orthogonal Matching Pursuit,OMP)是一种用于寻找稀疏信号的贪婪算法,用于求解压缩感知问题中的稀疏近似问题。在压缩感知的背景下,通常我们有一个欠定的线性系统Ax y,其中A是一个已知的测量…

IDEA实现ssh远程连接本地Linux服务器

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

IAR推出新版IAR Embedded Workbench for Arm功能安全版,该版本配备经过认证的静态代码分析功能

瑞典乌普萨拉,2024年2月20日 – 全球领先的嵌入式系统开发软件解决方案供应商IAR宣布:推出其旗舰产品IAR Embedded Workbench for Arm功能安全版的最新版本9.50.3。此次发布进一步加强了IAR支持开发人员创建安全、可靠和符合标准的嵌入式应用程序的承诺&…

回归分析中的异方差性

在简单线性回归或多元线性回归中,我们对误差项做了一些基本假设。 简单线性回归: 多元线性回归: 假设条件: 1.误差均值为零 2.误差具有恒定方差 3.误差不相关 4.误差呈正态分布 第2个假设称为同方差性,因此&…

QML | 信号和信号处理器特性

信号和信号处理器特性 很多时候,应用程序的用户界面组件需要相互通信。例如,一个按钮需要知道用户是否进行了单击:当用户单击后,它可能会更改颜色来指示它状态的改变,或者执行一些逻辑代码实现一定的功能。同Qt一样,QML包含了相似的信号和信号处理器机制。 信号是发出事件…

逻辑回归为什么使用交叉熵而不用均方差?

逻辑回归为什么使用交叉熵而不用均方差?或者说逻辑回归的损失函数为什么不用最小二乘? 下面主要从两个角度进行阐述: 从逻辑回归的角度出发,逻辑回归的预测值是一个概率,而交叉熵又表示真实概率分布与预测概率分布的…

(C++) 详解内存地址空间

详解内存空间 0. 概述 一个C/C 程序,编译之后,形成的程序,在执行期间,内存中不仅存在一块区域用于存放代码,还有一些其他的区域用于使用,本节会详解C/C内部所使用的内存地址空间,关于各内存的…

每日OJ题_二叉树dfs③_力扣814. 二叉树剪枝

目录 力扣814. 二叉树剪枝 解析代码 力扣814. 二叉树剪枝 814. 二叉树剪枝 难度 中等 给你二叉树的根结点 root ,此外树的每个结点的值要么是 0 ,要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 n…

深入探索Selenium自动化测试:基础、代码实战与最佳实践【第90篇—Selenium自动化测试】

文章目录 深入探索Selenium自动化测试:基础、代码实战与最佳实践什么是Selenium?安装Selenium基础用法启动浏览器查找元素操作元素 代码实战:模拟登录进阶用法等待元素出现处理弹窗执行JavaScript 高级应用:Selenium Grid启动Sele…

压缩感知常用的测量矩阵

测量矩阵的基本概念 在压缩感知(Compressed Sensing,CS)理论中,测量矩阵(也称为采样矩阵)是实现信号压缩采样的关键工具。它是一个通常为非方阵的矩阵,用于将信号从高维空间映射到低维空间&…

基于vue框架的环保知识普及平台设计与实现

项目:基于vue框架的环保知识普及平台设计与实现 目 录 摘要 I Abstract II 第1章 引言 1 1.1 研究的背景 1 1.2 目的和意义 1 1.3 设计思路 1 1.4 研究的主要内容 2 第2章 相关原理和技术 3 2.1 B/S 模式体系结构 3 2.2 Springboot技术 4 2.3 访问数据库…

“中国国安部紧急警告”!境外公司利用加密货币诱使人员非法采集空间数据!当心不慎成“帮凶”!

随着加密货币的普及,每天都有新的区块链项目出现,目前市场上已经有成千上万种不同的加密货币 一些项目可能因其名人光环、运作机制、出色的代币经济学、或是提供优良的服务而受到市场亲睐,但也有很多项目缺乏大众的关注,或是尚未有…

机器学习——强化学习作业

作业内容 成功降落在两个黄色旗子中间为成功,其他为失败 Policy Gradient方法 Actor-Critic方法 范例结果 baseline Policy Gradient实现

初阶数据结构之---顺序表和链表(C语言)

引言-线性表 线性表: 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构,也就是说是连续的一条直线。但在物理上并不一定是连续的。线性表在物理上…

OSQP文档学习

OSQP官方文档 1 QSQP简介 OSQP求解形式为的凸二次规划: x ∈ R n x∈R^n x∈Rn:优化变量 P ∈ S n P∈S^n_ P∈Sn​:半正定矩阵 特征 (1)高效:使用了一种自定义的基于ADMM的一阶方法,只需…

【Flink精讲】Flink内核源码分析:命令执行入口

官方推荐per-job模式,一个job一个集群,提交时yarn才分配集群资源; 主要的进程:JobManager、TaskManager、Client 提交命令:bin/flink run -t yarn-per-job /opt/module/flink-1.12.0/examples/streaming/SocketWind…

什么是CODESYS开发系统

CODESYS是一种用于工业自动化领域的开发系统软件,提供了一个完整集成的开发环境。该软件由德国CODESYS GmbH(原 3S-Smart Software Solutions GmbH)公司开发,其最新版本为CODESYS V3。 CODESYS开发系统具有多种特性和优点。首先&a…