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

news2024/12/27 13:49:08
  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集群
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

选择VR全景行业,需要了解哪些内容?

近年来,随着虚拟现实、增强现实等技术的持续发展,VR全景消费市场得以稳步扩张。其次,元宇宙行业的高速发展,也在进一步拉动VR全景技术的持续进步,带动VR产业的高质量发展。作为一种战略性的新兴产业,国家和…

一分钟学会MobaXterm当Linux客户端使用

一、介绍 MobaXterm是一款功能强大的远程计算机管理工具,它集成了各种网络工具和远程连接协议,可以帮助用户在Windows系统上轻松管理远程计算机。MobaXterm支持SSH、Telnet、RDP、VNC等多种远程连接协议,同时还集成了X11服务器,可…

react hook使用UEditor引入秀米图文排版

里面坑比较多,细节也比较多 以下使用的是react 18 ice3.0,使用其他react脚手架的配置基本相同,例如umi4 1.下载UEditor 进入UEditor仓库,找到版本v1.4.3.3,点击进去 接着下载ueditor1_4_3_3-utf8-jsp.zip版本 下载好…

iMazing2024Windows和Mac的iOS设备管理软件(可以替代iTunes进行数据备份和管理)

iMazing2024是一款兼容 Windows 和 Mac 的 iOS 设备管理软件,可以替代 iTunes 进行数据备份和管理。以下是一些 iMazing 的主要功能和优点: 数据备份和恢复:iMazing 提供了强大的数据备份和恢复功能,可以备份 iOS 设备上的各种数据…

精品基于jsp+SSM实现的仓储物流管理系统-驿站快递登记取件

《[含文档PPT源码等]精品基于jspSSM实现的仓储物流管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 使用技术: 开发语言:Java 框架:ssm 技术:JSP JDK版…

使用 package.json 配置代理解决 React 项目中的跨域请求问题

使用 package.json 配置代理解决 React 项目中的跨域请求问题 当我们在开发前端应用时,经常会遇到跨域请求的问题。为了解决这个问题,我们可以通过配置代理来实现在开发环境中向后端服务器发送请求。 在 React 项目中,我们可以使用 package…

MyBatis-Plus:通用分页实体封装

分页查询实体:PageQuery package com.example.demo.demos.model.query;import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.Data; import org.springframework.util.St…

linux 系统的目录结构

为什么某些执行程序位于/bin、/sbin、/usr/bin或/usr/sbin目录下?例如,less命令位于/usr/bin目录下。为什么不是/bin、/sbin或/usr/sbin?这些目录之间有什么区别呢? 在这篇文章中,让我们主要讲述一下Linux文件系统结构…

css实现梯形

<div class"trapezoid"></div> .trapezoid {width: 200px;height: 0;border-bottom: 100px solid red; /* 定义梯形的底边 */border-left: 50px solid transparent; /* 定义梯形的左边 */border-right: 50px solid transparent; /* 定义梯形的右边 */} …

【测试】----JMeter性能测试工具入门篇

定义&#xff08;主要测试的是接口&#xff09; JMeter是Apache组织使用Java开发的一款测试工具&#xff0c;可以对服务器&#xff0c;网络或者对象模拟巨大的负载情况&#xff1b;通过创建带有断言的脚本来验证程序是否能返回期望的结果 优缺点 优点 开源免费跨平台&#xff0…

Sui基金会与沙迦美国大学宣布合作开设区块链学院

沙迦美国大学&#xff08;American University of Sharjah&#xff0c;AUS&#xff09;作为中东领先的创新中心&#xff0c;与Sui合作推出了一个新的区块链研究中心&#xff0c;进一步提升了其在创新领域的声誉。 该举措是沙迦酋长国旨在将自己定位为教育和研究区域中心的一部…

imazing是什么软件?2024最新版本有哪些功能

iMazing的其他功能包括&#xff1a; iOS信息查询&#xff1a;在iMazing中&#xff0c;用户可以查询到关于iOS设备的所有信息&#xff0c;包括设备型号、系统版本、存储容量、电池状态等&#xff0c;还能将这些设备的信息进行导出&#xff0c;方便用户随时了解自己的设备状态。…

微信小程序uniapp+vue校园任务跑腿接单平台java+python+nodejs+php

对于校园跑腿系统功能所牵扯的数据都是通过用户进行校园跑腿系统等相关的数据信息内容、并且可以进行管理员服务端&#xff1b;首页、个人中心、学生管理、跑腿者管理、系统公告管理、在线下单管理、已完成订单管理、订单评价管理、已接订单管理、系统管理&#xff0c;跑腿者客…

第六篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:深度解读Kaldi库个性化定制语音搜索引擎

传奇开心果短博文系列 系列短博文目录Python文本和语音相互转换库技术点案例示例系列 短博文目录前言一、雏形示例代码二、扩展思路介绍三、数据准备示例代码四、特征提取示例代码五、声学模型训练示例代码六、语言模型训练示例代码七、解码示例代码八、评估和调优示例代码九、…

LINUX读取RTC实时时钟时间

linux 读写RTC时间_linux rtc 读写-CSDN博客

Kotlin 中 List 和 MutableList 的区别

List&#xff1a;通用的有序元素集合。此接口中的方法仅支持对列表的只读访问&#xff1b;MutableList&#xff1a;支持添加和删除元素的通用有序元素集合。通过 MultableList 接口支持读/写访问&#xff1b; List 的相关操作&#xff1a; MutableList 的相关操作&#xff1a;…

内网穿透的应用-如何本地部署Elasticsearch搜索分析引擎实现并发布公网远程访问

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎&#xff0c;它提供了一个分布式、多…

解决NPE的三种方式

解决NPE的三种方式 NullPointerException&#xff08;空指针异常&#xff0c;NPE&#xff09;是Java编程中常见的错误。解决NPE的方法可以从以下三个方面考虑&#xff1a; 明确处理空引用情况&#xff1a; 在某些情况下&#xff0c;无法避免使用可能为空的引用对象。此时&…

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面&#xff0c;不能和selector一起使用 获取 不能直接打开FIleChannel&#xff0c;必须通过FileInputSream&#xff0c;或者FileOutputSetream &#xff0c;或者RandomAccessFile来获取FileChannel 通过FileIn…

docker自定义网络实现容器之间的通信

Background docker原理 docker是一个Client-Server结构的系统&#xff0c;Docker的守护进程运行在主机上。通过Socket从客户端访问。docker核心三大组件&#xff1a;image–镜像、container-容器、 repository-仓库。docker使用的cpu、内存以及系统内核等资源都是直接使用宿主…