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 产品原型 地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...
