Redis 面试题 | 01.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
文章目录
- 1. 什么是Redis?它的主要特点是什么?
- 2. Redis的数据类型有哪些?
- 3. Redis的持久化机制是什么?有哪些不同的持久化方式?
- 4. Redis的主从复制是什么?有什么作用?
1. 什么是Redis?它的主要特点是什么?
Redis是一个开源的内存数据结构存储库,用于缓存数据、存储和检索数据。它提供了多种数据结构,如字符串、列表、哈希表、集合和排序集等,可以用于实现各种应用场景,如缓存、分布式锁、消息队列等。
Redis的主要特点包括:
-
高性能:Redis使用内存存储数据,具有极高的读写速度,能够快速地执行各种数据结构操作。
-
简单易用:Redis使用键值对的方式存储数据,可以通过简单的命令进行数据操作,无需复杂的SQL语句。
-
持久化:Redis支持数据持久化,可以将数据保存在磁盘上,即使Redis服务器崩溃,数据也不会丢失。
-
分布式:Redis支持集群模式,可以将数据分散在多个节点上,以提高系统的可用性和可扩展性。
-
丰富数据结构:Redis提供了多种数据结构,可以满足不同应用场景的需求。
-
开源:Redis是一个开源项目,拥有广泛的社区支持,可以方便地集成到各种应用程序中。
2. Redis的数据类型有哪些?
Redis提供了丰富的数据类型,包括:
-
字符串(String):存储一个简单的字符串值。
-
列表(List):存储一个列表,列表中的元素有序排列,可以进行左插、右插、索引操作等。
-
哈希表(Hash):存储一个哈希表,可以存储多个键值对。
-
集合(Set):存储一个集合,集合中的元素互不相同。
-
有序集合(Sorted Set):存储一个有序集合,集合中的元素可以进行排序。
-
布隆过滤器(Bloom Filter):用于判断元素是否存在于集合中。
-
事务(Transaction):支持事务操作,确保数据的一致性和完整性。
-
脚本(Script):支持使用Lua语言进行脚本编程,扩展Redis的功能。
-
集群(Cluster):支持集群模式,可以将数据分散在多个节点上,以提高系统的可用性和可扩展性。
-
数据备份(Backup):支持数据备份,可以将数据保存在磁盘上,即使Redis服务器崩溃,数据也不会丢失。
-
发布/订阅(Pub/Sub):支持发布/订阅模式,可以实现消息队列功能。
-
地理信息(Geo):支持地理信息查询,可以查询指定经纬度范围内的数据。
-
搜索(Search):支持搜索功能,可以对数据进行全文搜索。
-
缓存(Cache):支持缓存功能,可以将数据缓存到内存中,提高访问速度。
-
限流(Rate Limiter):支持限流功能,可以限制请求的速率,避免请求过多导致系统崩溃。
3. Redis的持久化机制是什么?有哪些不同的持久化方式?
Redis的持久化机制是指将数据保存在磁盘上,即使Redis服务器崩溃,数据也不会丢失。Redis提供了多种持久化方式,包括:
-
RDB持久化:Redis提供了RDB(Redis Database)格式,可以将数据导出到磁盘上,形成一个备份文件。RDB文件是一个二进制文件,包含Redis的数据结构和数据。当Redis服务器崩溃时,可以从RDB文件中恢复数据。RDB持久化是Redis的默认持久化方式。
-
AOF持久化:Redis提供了AOF(Append-Only File)格式,可以将Redis的命令日志导出到磁盘上,形成一个备份文件。AOF文件是一个文本文件,包含Redis的命令日志。当Redis服务器崩溃时,可以从AOF文件中恢复数据。
-
混合持久化:RDB和AOF的组合持久化,即在Redis服务器运行期间,每隔一段时间将数据导出到RDB文件,并记录命令日志到AOF文件。当Redis服务器崩溃时,可以使用RDB文件恢复数据,并使用AOF文件恢复命令日志。
-
数据压缩持久化:Redis提供了数据压缩持久化,可以将数据压缩后保存在磁盘上,以减少磁盘空间的使用。
-
数据分片持久化:Redis提供了数据分片持久化,可以将数据分散在多个磁盘上,以提高系统的可用性和可扩展性。
-
数据加密持久化:Redis提供了数据加密持久化,可以将数据加密后保存在磁盘上,以保护数据的安全性。
-
数据备份持久化:Redis提供了数据备份持久化,可以将数据备份到磁盘上,以防止数据丢失。
-
数据归档持久化:Redis提供了数据归档持久化,可以将不再使用的数据归档到磁盘上,以减少磁盘空间的使用。
4. Redis的主从复制是什么?有什么作用?
Redis的主从复制是指将Redis服务器分为主服务器和从服务器,主服务器用于读写操作,从服务器用于备份数据和提供只读服务。主从复制可以实现数据的高可用性和数据的分片,其主要作用包括:
-
数据的高可用性:当主服务器崩溃时,Redis集群中的其他主服务器会自动接管数据,从而保证Redis集群的可用性。
-
数据的分片:将Redis集群分为多个主服务器和从服务器,可以提高Redis集群的并发性能,从而提高系统的处理能力。
-
数据的一致性和完整性:主从复制可以保证数据的一致性和完整性,避免数据不一致的情况发生。
-
数据的可扩展性:通过添加从服务器,可以扩展Redis集群的存储容量,从而提高系统的处理能力和可用性。
-
数据的安全性:通过备份数据到从服务器,可以提高数据的安全性,避免数据丢失的情况发生。
-
数据的可查询性:通过从服务器,可以提供只读服务,从而提高系统的查询性能。
-
数据的可恢复性:通过备份数据到从服务器,可以提高数据的可恢复性,即使主服务器崩溃,也可以从备份数据中恢复数据。
-
数据的可移植性:通过主从复制,可以将Redis集群迁移到其他平台或服务器上,从而提高系统的可移植性。
相关文章:
Redis 面试题 | 01.精选Redis高频面试题
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Crow:实现点击下载功能
Crow:设置网站的index.html-CSDN博客 讲述了如何完成一个最简单的网页的路由 很多网页提供了下载功能,怎么实现呢,其实也很简单。 假设网页的目录结构如图 $ tree static static ├── img │ └── goodday.jpg └── index.html //index.html <html> <body&…...
2024年华为OD机试真题-内存冷热标记-Python-OD统一考试(C卷)
题目描述: 现代计算机系统中通常存在多级的存储设备,针对海量workload的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。 一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否…...
Webpack5入门到原理9:处理字体图标资源
1. 下载字体图标文件 打开阿里巴巴矢量图标库选择想要的图标添加到购物车,统一下载到本地 2. 添加字体图标资源 src/fonts/iconfont.ttfsrc/fonts/iconfont.woffsrc/fonts/iconfont.woff2src/css/iconfont.css/注意字体文件路径需要修改 src/main.js import { …...
【Docker】在Windows操作系统安装Docker前配置环境
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…...
Webpack5入门到原理21:提升开发体验
SourceMap 为什么 开发时我们运行的代码是经过 webpack 编译后的,例如下面这个样子: /** ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").* This devtool is neither made for product…...
YOLOv8改进 | Conv篇 | 在线重参数化卷积OREPA助力二次创新(提高推理速度 + FPS)
一、本文介绍 本文给大家带来的改进机制是一种重参数化的卷积模块OREPA,这种重参数化模块非常适合用于二次创新,我们可以将其替换网络中的其它卷积模块可以不影响推理速度的同时让模型学习到更多的特征。OREPA是通过在线卷积重参数化(Online Convolutional Re-parameteriza…...
conda国内加速
1、配置国内源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 2、显示源地址 conda config --set show_channel_urls yes...
RabbitMQ-数据持久化
一、持久化类型 1、交换机持久化(SpringAMQP默认) 2、队列持久化(SpringAMQP默认) 3、消息持久化 二、消息持久化 1、纯内存操作 如果采用纯内存操作,那么消息存储达到队列的上限之后,会有一个page ou…...
JS-WebAPIs-本地存储(五)
• 本地存储介绍 以前我们页面写的数据一刷新页面就没有了,是不是?随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常 性在本地存储大量的数据…...
了解Vue中日历插件Fullcalendar
实现效果如下图: 月视图 周视图 日视图 官方文档地址:Vue Component - Docs | FullCalendar 1、安装与FullCalendar相关的依赖项 npm install --save fullcalendar/vue fullcalendar/core fullcalendar/daygrid fullcalendar/timegrid fullcalend…...
Cloudreve存储策略-通过从机存储来拓展容量
Sham的云服务器是搬瓦工最低低低配的,1H 0.5G不说,硬盘容量也只有10g,说实话,装了宝塔面板和服务器套件后,基本满了,这时又想在云服务器上打个网盘用于下载、存储,这时就需要拓展硬盘࿰…...
java进阶-jvm精讲及实战
深入了解jvm及实战 1.引言2.jvm概念理解 1.引言 jvm是深入了解java底层逻辑的必备知识储备,在中大型开发团队里,中高级工程师必须要了解和掌握,也是中高级工程师面试必考题,在实战中用于程序性能调优,内存泄露分析等 2.jvm概念理解...
vue中引入sass、scss
常规步骤 1. 创建项目 使用vue cli 脚手架工具创建项目 vue create xxxx2. 创建全局样式文件 全局样式变量 路径:/assets/styles/variables.scss //flex 布局变量 $--flex-direction: ("row", "column"); $--flex-position: ("start"…...
Java学习笔记(八)——Lambda表达式
文章目录 Lambda表达式Lambda表达式的省略写法Lambda练习练习1练习2 算法题算法题1 斐波那契数列算法题2 猴子吃桃子算法题3 爬楼梯 Lambda表达式 Lambda表达式是JDK8开始的一种新语法形式。 基本作用:简化函数式接口的匿名内部类的写法。 注意: Lam…...
【JavaEE】CAS
作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…...
Linux 系统之部署 h5ai 目录列表程序
一、h5ai 介绍 1.1)h5ai 简介 h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写,但现在它…...
MySQL自增ID耗尽探究:分析与解决方案
MySQL自增ID耗尽探究:分析与解决方案 一、引言 在面试过程中,面试官抛出了一个看似简单却又深入的问题:“MySQL的自增ID用完了,怎么办?” 自增ID耗尽可能看似遥远,但在处理大量数据的系统中,…...
操作系统-操作系统引导(磁盘 操作系统引导过程)
文章目录 总览一个刚买来的磁盘(硬盘)往磁盘安装操作系统后操作系统引导过程例:windows操作系统的初始化程序 总览 一个刚买来的磁盘(硬盘) 此时空空如也 往磁盘安装操作系统后 操作系统在C盘 主引导记录不属于某…...
基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十三)
地址簿相关功能 1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码实现1.2.1 Mapper层1.2.2 Service层1.2.3 Controller层 1.1 需求分析和设计 1.1.1 产品原型 地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
