Redis 面经
1、说说什么是 Redis?
Redis 是 Remote Dictionary Service 三个单词中加粗字母的组合,是一种基于键值对的 NoSQL 数据库。但比一般的键值对,比如 HashMap 强大的多,Redis 中的 value 支持 string、hash、 list、set、zset、Bitmaps、HyperLogLog、GEO 等多种数据结构。而且因为 Redis 的所有数据都存放在内存当中,所以它的读写性能非常出色。不仅如此,Redis 还可以将内存数据持久化到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据并不会丢失。除此之外,Redis 还提供了键过期、发布订阅、事务、流水线、Lua 脚本等附加功能,是互联网技术领域中使用最广泛的缓存中间件。
1.1 Redis 和 MySQL 的区别?
Redis:数据存储在内存中的 NoSQL 数据库,读写性能非常好,是互联网技术领域中使用最广泛的缓存中间件。
MySQL:数据存储在硬盘中的关系型数据库,适用于需要事务支持和复杂查询的场景。
1.2 项目里哪里用到了 Redis?
1.3 部署过 Redis 吗?
我是直接在本地部署的单机版,只需要下载 Redis 的安装包,解压后运行 redis-server 命令即可。
2、Redis 可以用来干什么?
Redis 可以用来做缓存、排行榜/计数器、分布式锁等等。
- 缓存:缓存是 Redis 最常见的用途,由于 Redis 的数据存储在内存中,所以读写速度非常快,远超基于磁盘存储的数据库。使用 Redis 缓存可以极大地提高应用的响应速度和吞吐量。
- 排行榜/计数器:Redis 的 ZSet 非常适合用来实现排行榜的功能,可以根据 score 进行排序,实时展示用户的活跃度。同时 Redis 的原子递增操作可以用来实现计数器功能。
- 分布式锁:Redis 可以实现分布式锁,用来控制跨多个进程的资源访问。
3、Redis 有哪些数据类型?
Redis 有五种基本数据类型,这五种数据类型分别是:String、Hash、List、Set、Sorted Set(也叫 Zset)。
3.1 简单介绍下 String?
字符串是最基础的数据类型,key 是字符串,value 是:字符串、数字、二进制。
字符串的主要使用场景:缓存、计数、共享 Session、限速。
3.2 简单介绍下 Hash?
哈希是键值对集合,key 是字符串,value 是 Map 集合,比如说 value = { name : ‘沉默王二’, age : 18 }。
哈希的主要使用场景:缓存用户信息、缓存对象。
3.3 为什么使用 Hash 类型而不使用 String 类型序列化存储?
使用 Hash 比使用 String 存取更方便。
3.4 简单介绍下 List?
List 是字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
列表的主要使用场景:消息队列、文章列表。
3.5 简单介绍下 Set?
Set 是无序集合,元素是唯一的,不允许重复。
无序集合的主要使用场景:去重存储、集合运算、随机抽取。
3.6 简单介绍下 Zset?
Zset 是有序集合,比 Set 多了一个排序属性 score。
有序集合的主要使用场景:排行榜、延时任务、范围查询、加权统计。
4、
5、
6、
7、
8、
9、
相关文章:
Redis 面经
1、说说什么是 Redis? Redis 是 Remote Dictionary Service 三个单词中加粗字母的组合,是一种基于键值对的 NoSQL 数据库。但比一般的键值对,比如 HashMap 强大的多,Redis 中的 value 支持 string、hash、 list、set、zset、Bitmaps、Hyper…...
设计模式 四、行为设计模式(1)
在设计模式的世界里,23种经典设计模式通常被分为三大类:创建型、结构型和行为型。创建型设计模式关注对象创建的问题,结构性设计模式关注于类或对象的组合和组装的问题,行为型设计模式则主要关注于类或对象之间的交互问题。 行为设…...
Python错误分析与调试
在Python编程的过程中,我们难免会遇到各种各样的错误,而有效地分析和调试这些错误,能让我们的代码快速恢复正常运行,今天就来和大家聊聊Python中错误分析与调试的相关内容。 错误分析 Python中的错误大致可以分为语法错误和逻…...
vue实现大转盘抽奖
用vue实现一个简单的大转盘抽奖案例 大转盘 一 转盘布局 <div class"lucky-wheel-content"><div class"lucky-wheel-prize" :style"wheelStyle" :class"isStart ? animated-icon : "transitionend"onWheelTransitionE…...
《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第二篇:项目创建和初始化
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 《从零搭建Vue3项目实战》(AI辅助…...
yum拒绝连接
YUM 拒绝连接的解决方案 当遇到 yum 无法连接的问题时,通常可以通过更换为更稳定的镜像源来解决问题。以下是具体的解决方法: 更换为阿里云源 如果当前的 yum 配置文件存在问题或网络不稳定,可以尝试将其替换为阿里云的镜像源。 备份原始配…...
信息学奥赛一本通 1861:【10NOIP提高组】关押罪犯 | 洛谷 P1525 [NOIP 2010 提高组] 关押罪犯
【题目链接】 ybt 1861:【10NOIP提高组】关押罪犯 洛谷 P1525 [NOIP 2010 提高组] 关押罪犯 【题目考点】 1. 图论:二分图 2. 二分答案 3. 种类并查集 【解题思路】 解法1:种类并查集 一个囚犯是一个顶点,一个囚犯对可以看…...
代码随想录算法训练营第十一天
LeetCode/卡码网题目: 144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102. 二叉树的层序遍历107.二叉树的层次遍历II199. 二叉树的右视图637. 二叉树的层平均值429. N 叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. 填…...
浅谈进程的就绪状态与挂起状态
就绪状态 进程获得除 CPU 之外的所需资源,一旦得到 CPU 就可以立即运行,不能运行的原因是还是因为 CPU 的资源太少,只能等待分配 CPU 资源。在系统中,处于就绪状态的进程可能有多个,通常是将它们组成一个进程就绪队列…...
37、web前端开发之Vue3保姆教程(一)
一、课程简介 本课程旨在帮助学员从零基础逐步掌握Web前端开发的核心技术,涵盖当前前端开发中的关键工具和框架。课程内容包括: Vue 3:主流前端框架,支持组件化开发和响应式数据管理,帮助学员高效构建现代Web应用。TypeScript:增强版JavaScript,提供静态类型支持,提高…...
cenos7升级gcc 9.3和Qt5.15版本教程
cenos7升级gcc 9.3和Qt5.15版本教程 文章目录 cenos7升级gcc 9.3和Qt5.15版本教程0、背景1、现状2、目标和思路3、升级前环境准备3.1 虚拟机联网配置3.2 镜像设置 4、升级gcc 9.35 升级Qt6 测试验证7 总结 0、背景 之前编码的环境一直是“拿来主义”,拷贝现成的虚拟…...
Scala总结(七)
集合(二) 数组 不可变数组与可变数组的转换 arr1.toBuffer //不可变数组转可变数组 arr2.toArray //可变数组转不可变数组 arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化arr1.toBuffer 返回结果才是一个可变数组ÿ…...
linux 使用 usermod 授权 普通用户 属组权限
之前写过这篇文章 linux 普通用户 使用 docker 只不过是使用 root 用户编辑 /etc/group用户所属组文件的方式 今天带来一种 usermod 命令行方式 以下3步,在root用户下操作 第一步,先创建一个普通用户测试使用 useradd miniuser第二步,授权到…...
Redis持久化
Redis持久化 一.认识持久化1.简单介绍2.持久化策略 二.RDB1.快照2."定期"fork 3.RDB演示(1)手动执行save&bgsave触发一次生成快照(2)插入key,不手动执行bgsave(3)执行bgsave后,新旧文件的替换(4)通过配置自动生成rdb快照(5)rdb文件内容被故…...
什么是 k8s 的 Taints(污点) 和 Tolerations(容忍度)
什么是 k8s 的 Taints(污点) 和 Tolerations(容忍度) 在 Kubernetes(K8s)中,Taints(污点)和 Tolerations(容忍度)用于影响 Pod 调度到节点的行为…...
是德科技KEYSIGHT校准件85039B
是德科技KEYSIGHT校准件85039B 是德科技KEYSIGHT校准件85039B 85039B Agilent | 85039B|校准件|网络分析仪校准件|3GHz|75欧|N型 品牌: 安捷伦 | Agilent | 惠普 | HP 主要技术指标 DC to 3GHz frequency range 主要描述 常用型号: 一、频谱分析仪或…...
以UE5第三方插件库为基础,编写自己的第三方库插件,并且能够在运行时复制.dll
首先,创建一个空白的C 项目,创建第三方插件库。如下图所示 编译自己的.Dll 和.lib 库,打开.sln 如下图 ExampleLibrary.h 的代码如下 #if defined _WIN32 || defined _WIN64 #define EXAMPLELIBRARY_IMPORT __declspec(dllimport) #elif d…...
StarRocks执行原理与SQL性能优化策略探索
https://zhuanlan.zhihu.com/p/15707561363 聚合优化实践 -- 通过count group by 优化 count distinct数据倾斜问题 除了前面所说的聚合度会对分组聚合造成比较大的影响外,我们还要考虑一个点,即数据倾斜问题。 背景: 如下为最初的用户计算uv的SQL SE…...
Java全栈面试宝典:JMM内存模型与Spring自动装配深度解析
目录 一、Java内存模型(JMM)核心原理 🔥 问题8:happens-before原则全景解析 JMM内存架构图 happens-before八大规则 线程安全验证案例 🔥 问题9:JMM解决可见性的三大武器 可见性保障机制 volatile双…...
拉普拉斯变换
【硬核】工科生都逃不掉的拉氏变换,居然又炫酷又实用|拉普拉斯变换原理、图解与应用,傅里叶变换进阶,控制理论必修课【喵星考拉】...
JavaScript之Json数据格式
介绍 JavaScript Object Notation, js对象标注法,是轻量级的数据交换格式完全独立于编程语言文本字符集必须用UTF-8格式,必须用“”任何支持的数据类型都可以用JSON表示JS内内置JSON解析JSON本质就是字符串 Json对象和JS对象互相转化 前端…...
Android WiFi协议之P2P介绍与实践
Android WiFi P2P WiFi P2P (Peer-to-Peer) 是 Android 提供的一种允许设备之间直接通过 WiFi 进行通信的技术,无需接入传统的 WiFi 网络或互联网。这种技术也被称为 WiFi Direct。 一、WiFi P2P 基本概念 1. 核心组件 P2P 设备:支持 WiFi P2P 的 And…...
android TabLayout中tabBackground和background的区别
在这段代码中,android:background"color/white" 和 app:tabBackground"android:color/transparent" 是两个不同的属性,它们的作用范围和用途完全不同。以下是它们的区别: 1. android:background 作用: 设置整…...
使用 `keytool` 生成 SSL 证书密钥库
使用 keytool 生成 SSL 证书密钥库:详细指南 在现代 Web 应用开发中,启用 HTTPS 是保护数据传输安全性和增强用户体验的重要步骤。对于基于 Java 的应用,如 Spring Boot 项目,keytool 是一个强大的工具,用于生成和管理…...
DC-DC电路和LDO电路
一、DC-DC电路 在电子电路中,将输入的直流电压转换为电路中所需要的直流电压的电路被称为DC-DC电源电路。 1、buck电路(降压电路) 功能:把12V输入电压转化为5V的输出电压。 上图中电池为12V供电,需要给负载输出5V电…...
智谛达科技引领AI人形机器人新时代
在这个科技日新月异的时代,人工智能(AI)如同一股不可阻挡的洪流,以前所未有的速度改变着我们的生活方式、工作模式乃至整个社会的运行逻辑。而在这场波澜壮阔的科技革命中,智谛达科技集团凭借其深厚的技术底蕴、前瞻性的战略眼光以及在AI人形机器人领域的深厚积累,正引领着整个…...
在ubuntu24上装ubuntu22
实验室上有一台只装了ubuntu24的电脑,但是项目要求在22上进行 搞两个ubuntu系统! 步骤一:制作22的启动盘 步骤二:进入bios安装界面 步骤三:选择try or install ubuntu 步骤四:选择try ubuntu 步骤五&…...
高精度算法
高精度加法 输入两个数,输出他们的和(高精度) 输入样例 111111111111111111111111111111 222222222222222222222222222222 输出样例 333333333333333333333333333333 #include <bits/stdc.h> using namespace std;string a,b; in…...
2019年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析
2019年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛(China Undergraduate Mathematical Contest in Modeling)是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动,目的在于激励学生学习数学的积极性,提高学…...
UIMeter-UI自动化软件(产品级)
前言:作为一个资深测试工程师,UI测试,webUI自动化测试是我们必备的技能,我们都知道常用的框架比如selenium、playwright、rebootframwork等等,但是无论哪一种框架,都需要测试人员去编写代码,进行…...
Porting Layer - 跨平台函数接口封装(RTOS/Windows)- C语言
目录 概述具体实现使用说明 概述 在嵌入式开发中,一般会在某个开发板上某个系统上实现某个功能,为了开发模块的移植性更好,因此需要对不同的操作系统有一层封装层。当换一个操作系统时,模块中的code不用修改,只需要根…...
Kafka负载均衡挑战解决
本文为 How We Solve Load Balancing Challenges in Apache Kafka 阅读笔记 kafka通过利用分区来在多个队列中分配消息来实现并行性。然而每条消息都有不同的处理负载,也具有不同的消费速率,这样就有可能负载不均衡,从而使得瓶颈、延迟问题和…...
Docker Compose 常用命令 运行 docker-compose.yaml
Docker Compose 中有两个重要的概念 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 为了更方便…...
Kafka的索引设计有什么亮点
想获取更多高质量的Java技术文章?欢迎访问Java技术小馆官网,持续更新优质内容,助力技术成长 Java技术小馆官网https://www.yuque.com/jtostring Kafka的索引设计有什么亮点? Kafka 之所以能在海量数据的传输和处理过程中保持高…...
基于大模型的病态窦房结综合征预测及治疗方案研究报告
目录 一、引言 1.1 研究背景与目的 1.2 研究意义 二、病态窦房结综合征概述 2.1 定义与病因 2.2 临床表现与分型 2.3 诊断方法 三、大模型在病态窦房结综合征预测中的应用 3.1 大模型介绍 3.2 数据收集与预处理 3.3 模型训练与优化 四、术前预测与准备 4.1 风险预…...
音视频入门基础:RTCP专题(5)——《RFC 3550》的附录A
一、引言 本文对应《RFC 3550》的附录A(Appendix A. Algorithms)。 二、Appendix A. Algorithms 根据《RFC 3550》第62页,《RFC 3550》提供了有关RTP发送方和接收方算法的C代码示例。在特定的运行环境下,可能还有其他更快或更有…...
qemu仿真调试esp32,以及安装版和vscode版配置区别
不得不说,乐鑫在官网的qemu介绍真的藏得很深 首先在首页的sdk的esp-idf页面里找找 然后页面拉倒最下面 入门指南 我这里选择esp32-s3 再点击api指南-》工具 才会看到qemu的介绍 QEMU 模拟器 - ESP32-C3 - — ESP-IDF 编程指南 latest 文档https://docs.espressi…...
协方差相关问题
为什么无偏估计用 ( n − 1 ) (n-1) (n−1) 而不是 n n n,区别是什么? 在统计学中,无偏估计是指估计量的期望值等于总体参数的真实值。当我们用样本数据估计总体方差或协方差时,分母使用 ( n − 1 ) (n-1) (n−1) 而不是 n n…...
Android OpenCV 人脸识别 识别人脸框 识别人脸控件自定义
先看效果 1.下载OpenCV 官网地址:opcv官网 找到Android 4.10.0版本下载 下载完毕 解压zip如图: 2.将OpenCV-android_sdk导入项目 我这里用的最新版的Android studio 如果是java开发 需要添加kotlin的支持。我用的studio比较新可以参考下,如果…...
深入解析Linux软硬链接:原理、区别与应用实践
Linux系列 文章目录 Linux系列前言一、软硬链接的概念引入1.1 硬链接1.2 软链接 二、软硬链接的使用场景2.1 软链接2.2 硬链接 三、总结 前言 上篇文章我们详细的介绍了文件系统的概念及底层实现原理,本篇我们就在此基础上探讨Linux系统中文件的软链接࿰…...
TDengine 与 taosAdapter 的结合(二)
五、开发实战步骤 (一)环境搭建 在开始 TDengine 与 taosAdapter 结合的 RESTful 接口开发之前,需要先完成相关环境的搭建,包括 TDengine 和 taosAdapter 的安装与配置,以及相关依赖的安装。 TDengine 安装…...
OBS 中如何设置固定码率(CBR)与可变码率(VBR)?
在使用 OBS 进行录制或推流时,设置“码率控制模式”(Rate Control)是非常重要的一步。常见的控制模式包括: CBR(固定码率):保持恒定的输出码率,适合直播场景。 VBR(可变码率):在允许的范围内动态调整码率,适合本地录制、追求画质。 一、CBR vs. VBR 的差异 项目CBR…...
优艾智合人形机器人“巡霄”,开启具身多模态新时代
近日,优艾智合-西安交大具身智能机器人研究院公布人形机器人矩阵,其中轮式人形机器人“巡霄”首次亮相。 “巡霄”集成移动导航、操作控制与智能交互技术,具备跨场景泛化能,适用于家庭日常服务、电力设备巡检、半导体精密操作及仓…...
蓝桥杯小白打卡第七天(第十四届真题)
小蓝的金属冶炼转换率问题 小蓝有一个神奇的炉子用于将普通金属 (O) 冶炼成为一种特殊金属 (X) 。 这个炉子有一个称作转换率的属性 (V) ,(V) 是一个正整数,这意味着消耗 (V) 个普通金属 (O) 恰好可以冶炼出一个特殊金属 (X) ,当普通金属 (…...
excel经验
Q:我现在有一个excel,有一列数据,大概两千多行。如何在这一列中 筛选出具有关键字的内容,并输出到另外一列中。 A: 假设数据在A列(A1开始),关键字为“ABC”在相邻空白列(如B1)输入公…...
【Pandas】pandas DataFrame astype
Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型 pandas.DataFrame.astype pandas.DataFrame.astype 是一个方法,用于将 DataFrame 中的数据转换为指定的数据类型。这个方法非常…...
【Netty4核心原理④】【简单实现 Tomcat 和 RPC框架功能】
文章目录 一、前言二、 基于 Netty 实现 Tomcat1. 基于传统 IO 重构 Tomcat1.1 创建 MyRequest 和 MyReponse 对象1.2 构建一个基础的 Servlet1.3 创建用户业务代码1.4 完成web.properties 配置1.5 创建 Tomcat 启动类 2. 基于 Netty 重构 Tomcat2.1 创建 NettyRequest和 Netty…...
4.6学习总结
包装类 包装类:基本数据类型对应的引用数据类型 JDK5以后新增了自动装箱,自动拆箱 以后获取包装类方法,不需要new,直接调用方法,直接赋值即可 //1.把整数转成二进制,十六进制 String str1 Integer.toBin…...
MySQL学习笔记五
第七章数据过滤 7.1组合WHERE子句 7.1.1AND操作符 输入: SELECT first_name, last_name, salary FROM employees WHERE salary < 4800 AND department_id 60; 输出: 说明:MySQL允许使用多个WHERE子句,可以以AND子句或OR…...
成为社交场的导演而非演员
一、情绪的本质:社交信号而非自我牢笼 进化功能:情绪是人类进化出的原始社交工具。愤怒触发群体保护机制,悲伤唤起同情支持,喜悦巩固联盟关系。它们如同可见光谱,快速传递生存需求信号。双刃剑效应:情绪的…...