Redis吊打面试官的经典面试题整理

2023-11-04

编程界的小学生


1、Redis为什么是key,value的,为什么不是支持SQL的?
这题第一眼看到有点懵逼
选择key-value的原因:key-value简单粗暴,使用方便?效率更佳?
为什么不支持sql:
因为redis的内存模型是一个hashtable,不使用表来存储数据,也不会预定义或强制要求用户对redis储存的不同数据进行关联。

在这里插入图片描述

2、Redis是多线程还是单线程?
redis中io多路复用器模块是单线程执行,事件处理器也是单线程执行,两个线程不一样。所以实际redis应该是单进程多线程,只是不同的模块都用的单线程实现。
两个维度来举例:
(1)若是client发送命令到server的话,server处理命令是单线程逐条进行的。
(2)server内部可以是多线程的,比如aof持久化,假设策略每秒,那就是再单独开启一个线程去执行aof文件持久化操作,这就是多线程了。

3、Redis的持久化开启了RDB和AOF下重启服务是如何加载的?
优先AOF,AOF没找到的话再找RDB,因为AOF文件的数据要全于RDB。
彻底搞懂Redis持久化之RDB原理
彻底搞懂Redis持久化之AOF原理
Redis持久化之RDB与AOF对比总结

4、Redis如果做集群该如何规划?AKF/CAP如何实现和设计?
参考redis各种部署方式的优缺点来决定。
如果希望快速部署,那么可以考虑单节点部署方式。
如果只需要考虑可靠性,那么可以考虑主从复制模式。
如果想要保证高可用,不需要考虑储存成本可以考虑哨兵模式。
如果想提高集群的扩展性和可用性,不要求保证数据的强一致性,且没有批量操作,那么可以考虑集群模式。
大白话图文结合的方式讲解什么是CAP
AKF分为三个维度:XYZ轴,具体Google…

5、10万用户一年365天的登录情况如何用redis存储,并快速检索任意时间窗内的活跃用户?
bitmap,直接看下文会大彻大悟。
Redis的bitmap从基础到业务

6、Redis的5种Value类型你用过几种,能举例吗?
string、list、set、sorted_set、hash,大家都懂,不想写一堆废话来举例。说下原理吧
string:int、raw、embstr
list:ziplist、linkedlist
hash:ziplist、hashtable
set:intset、hashtable
sorted set:ziplist、skiplist+dict

7、100万并发4G数据,10万并发400G数据,如何设计Redis存储方式?
我肤浅的理解为:
前者用主从+哨兵进行高可用,加快读请求的速度,减轻单节点的压力。
一文掌握Redis的主从复制原理到实战
一文掌握Redis的哨兵Sentinel原理到实战
后者用集群来均分这400G数据。 但是感觉不是面试官想要的答案。

10000、特别说明
题目均来源于网络和朋友被问到的真题,哪里不对和哪里没写答案的,需要借助广大爱好者的集资,直接评论即可。我看到后会更新到博客上。

微信公众号【Java码农社区】
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis吊打面试官的经典面试题整理 的相关文章

  • 如何对由 keycloak 保护的 SpringBoot 控制器进行单元测试?

    我知道已经有类似的问题了here https stackoverflow com questions 49144953 mocking a keycloak token for testing a spring controller and
  • 范围内的春季活动可能吗?

    Spring 事件机制支持发布应用程序事件并通过 Spring 组件监听这些事件 EventListener注解 但是 我在 中找不到有关在特定范围内发送事件的任何信息文档 https docs spring io spring docs
  • 如何从 JAXB 编组 XML 文件中删除 xmlns:xsi 和 xsi:type

    我有一组 JAXB 生成的类 其中一些类具有接受的 setter 方法 对象 作为参数 例如 XmlAccessorType XmlAccessType FIELD XmlType name Car propOrder defaultCar
  • 合并两个 Jasper 报告

    我有一个带有下拉菜单的网络应用程序 用户可以从中选择报告可视化的类型 报告 1 报告 2 报告 3 等 根据所选的报告 Jasper 报告将在服务器上编译并以 PDF 格式的弹出窗口打开 在服务器端 我使用下面的代码以单独的方法实现每个报告
  • android OpenGl 如何绘制一个矩形

    我想用OpenGL画一个矩形 package jnidemo example com openglsquare import android content Context import android opengl GLSurfaceVi
  • String.split() 的 ArrayIndexOutOfBoundsException

    这是从文件中读取输入的代码 该文件包含表单中的学生详细信息roll name age street city zipcode 其中很少有值可以null even 对于以下代码 我得到java lang ArrayIndexOutOfBoun
  • 如何在 Java 中从任意基数转换为基数 10

    我是 Java 新手 我想编写一个程序 仅使用算术运算将基数 2 3 4 5 6 7 8 9 16 转换为基数 10 我已经完成了从键盘读取字符串 如果数字是十六进制 并将其转换为整数 之后我做了一个 while 循环 将数字分割为数字并将
  • 异步方法的默认 EJB 事务模式?

    当我有一个 AsynchronousEJB 中的方法 并且我没有指定 TransactionAttribute 那么容器到底是如何处理事务边界的呢 显然 它不能使用调用线程的事务 那么它是做什么的呢 同样的问题 但涉及由 TimerServ
  • 将 PFX 文件导入现有 JKS 文件(不从 .pfx 转换为 .jks)

    我有 Java Web 服务 并使用 Java Keytool 创建的 jks 文件实现了 X 509 keytool genkey keyalg RSA sigalg SHA1withRSA validity 730 alias myse
  • 负字符值JAVA

    为什么会出现以下情况 char p 0 p System out println p result 65535 为什么不给出编译错误或运行时异常 我预计它是因为字符不能为负数 相反 它从颠倒开始倒数 提前致谢 为什么不给出编译错误或运行时异
  • 编辑 CSV 文件(设计实现)

    我开始设计一个程序 该程序将根据已找到并保存到主 CSV Excel 文件中的相似字符串及其标识 自动执行正确查找和识别字符串的过程 现在我想正确设计它 这样我以后在实现 CSV Excel 读写部分时就不会遇到问题 我可能会使用 Open
  • 用于查看算法花费多长时间的计时器表示我的二分搜索比线性搜索花费的时间更长

    这是要点课程https gist github com 2605302 https gist github com 2605302 我已经用不同的文件对其进行了多次测试 即使二分搜索进行的比较较少 所花费的时间也总是更多 出了什么问题 pu
  • 基本的 Swing 库? JGoodies,JFreeChart [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 什么是对象发布以及为什么我们需要它?

    在一次 Java 开发人员面试中 我被问到一个问题 什么是对象发布以及为什么我们需要它 我不确定我知道正确的答案 我认为对象发布是指将对象 变量 状态放入堆内存中 线程之间共享对象 变量 需要它 我对吗 如果我错了 请纠正我 我一直在搜索
  • 使用 Spring Boot 应用程序属性设置 tomcat 属性

    我想为启动提供的 tomcat 设置 maxSwallowSize 属性 我的 application properties 有这一行 server context parameters maxSwallowSize 20971520 由于
  • 通过反思思考工厂设计模式

    我正在对工厂模式进行研发 我开发了下面的代码 现在我知道子类是 Dog 和 Cat 但是如果我想通过在 main 中传递类名来通过反射实现同样的事情 请告诉我该怎么做 爪哇 public abstract class Animal publ
  • Gradle:找不到受信任的证书

    我正在尝试使用 Gradle 在 Ubuntu 服务器上构建我的 Android 项目 在我的 Windows 10 PC 上使用 Android Studio 构建工作正常 但使用 gradlew build or gradlew cle
  • 使用 int 作为 java.util.Dictionary 的类型参数

    当我尝试这样声明字典时 private Dictionary
  • 在调用超类型构造函数之前无法引用“X”,其中 x 是最终变量

    考虑以下 Java 类声明 public class Test private final int defaultValue 10 private int var public Test this defaultValue lt Compi
  • Resilience4j 重试 - 记录来自客户端的重试尝试?

    是否可以使用resilience4j在客户端记录重试尝试 也许通过某种配置或设置 目前 我正在将resilience4j与Spring boot Webflux一起使用基于注释 它运作良好 该项目很棒 当我们将服务器日志放在服务器端时 为了

随机推荐

  • 多目标优化问题和遗传算法学习笔记

    多目标优化问题和遗传算法学习笔记 多目标优化问题和遗传算法学习笔记 本人最近研究多目标优化问题以及NSGA2算法 下面把学习笔记分享给大家 希望可以帮助到一些和我一样的初学者们 名词 Nondominated sorting 非支配排序 N
  • OpenMMLab AI实战营第二期(1)计算机视觉与OpenMMLab概述

    通过今天课程的学习 算是比较大的扩展了我的视野 近期主要学一些强化学习的知识 没有想到计算机视觉领域已经发展的这么迅猛 很多以前只是在脑海里想象的计算机视觉应用场景 原来OpenMMLab已经实现了 我比较对目标检测感兴趣 而且之后可能要用
  • nginx模块初始化

    nginx模块初始化 1 nginx模块介绍 在nginx编译之后 在源代码目录中会出现objs文件夹 里面有ngx auto config h ngx auto headers h以及ngx modules c文件等 其中 生成的ngx
  • linux安装redis

    一 下载 wget https download redis io releases redis 6 2 6 tar gz 二 解压 tar zvxf redis 6 2 6 tar gz 三 移动 mv root redis 6 2 6
  • FPGA 30 综合数字ADC /DAC 信号发送采集系统设计(综合项目设计)

    FPGA 30 综合数字ADC DAC 信号发送采集系统设计 综合项目设计 模块名称 综合数字ADC DAC 信号发送采集系统设计 主要功能 本实验设计了一个信号发送和采集系统的设计 在整个系统中 基于原先学习的key filter 按键滤
  • c语言数据结构之栈

    前言 栈是一种先进后出的结构 只能对栈顶进行操作 数据入栈 出栈都在栈顶处 换句话说 栈只能对栈顶端进行操作 禁止跳过栈顶插入或删除其它数据 栈可以简单分为数组栈和链表栈 数组栈设定了空间大小 而链表栈在内存允许的范围内无空间大小限制 通过
  • 域控服务器和文件服务器,windows2008 r2域控制器和文件服务器问题

    发表于 2017 5 17 17 55 来自 51CTO网页 引用 原帖由 xifalniang 于 2017 5 17 17 36 发表 可能是与文件共享相关的服务异常 具体先dcdiag检查下吧 看下出错时候的系统日志 目录服务器诊断
  • 七叔带你玩转pytest—fixture,妈妈再也不用担心学不会测试了

    前言 我们今天呢来看看pytest实现fixture有几种方式 分别该怎么进行呢 小编废话不多说了咱们直接开始吧 自动化测试框架中的 fixture 我们在编写测试用例 都会涉及到用例执行之前的环境准备工作 和用例执行之后的环境清理工作 代
  • zxing解码条形码C++

    include funset hpp include
  • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your

    报错 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds to your MySQL server version
  • hosts ip 指向ip_【好玩的网络-第4期】DNS硬核科普,你是怎么上网的?DNS里都有啥?传说中的hosts文件又是啥?...

    好玩的网络 系列面向普通人的网络科普视频 我在我的哔哩哔哩账号 up主 旋律果子 更新 好玩的网络 视频版 在我的知乎 用户 曾彦 专栏更新 好玩的网络 文字版 最新消息以及预告在我的个人网站www yzeng1995 top发布 大家可以
  • 09.MyBatis整合PageHelper实现分页功能

    09 MyBatis整合PageHelper实现分页功能 MyBatis可以使用第三方的插件来对功能进行扩展 分页组手PageHelper是将分页的复杂操作进行封装 使用简单的方式即可获得分页的相关数据 开发步骤 导入通用的PageHelp
  • STM32的全系列MCU的ID号的地址及读取方法

    在STM32的全系列MCU中均有一个96位的唯一设备标识符 在ST的相关资料中 对其功能的描述有3各方面 用作序列号 例如 USB 字符串序列号或其它终端应用程序 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时
  • 全桥DCDC输出电压和变比占空比的关系

    在做各种数千瓦到数十千瓦的变换器的过程中 辅助电源总是如影随形 但是我从来没有专门去做过它们 有时候遇到这方面的问题需要解决的时候 对其基本原理竟一时懵逼了 一下图为例 列出今天的疑问 输出电压和占空比 变压器变比的关系 经过一番思考和查阅
  • vue-styled-components

    1 安装 npm install vue styled components 2 在一个组件中引入
  • LabVIEW必知

    介绍 基础知识 数学函数 矩阵数学 数据采集 介绍 传感器和信号 硬件 采集数据 操作数据采集系统需要软件 而这正是LabVIEW发挥作用的地方 LabVIEW旨在与National Instruments数据采集系统一起使用 在收集数据之
  • 微服务(Microservice)那点事

    WHAT 什么是微服务 微服务简介 这次参加JavaOne2015最大的困难就是听Microservice相关的session 无论内容多么水 只要题目带microservice 必定报不上名 可见Microservice有多火 最喜欢其中
  • VUE3 学习笔记(七)动态样式 class 实现

    目录 一 绑定 HTML class 1 绑定对象 2 绑定数组 3 在组件上使用 二 绑定内联样式 1 绑定对象 2 绑定数组 3 自动前缀 4 样式多值 数据绑定的一个常见需求场景是操纵元素的 CSS class 列表和内联样式 因为
  • php GD库做水印功能,合并图片

    1 创建一个适应大小的底层图片 2 读取需要拼接的图片 dst data file get contents dst src dst img imagecreatefromstring dst data 3 把读取的图放到指定的位置 这里需
  • Redis吊打面试官的经典面试题整理

    编程界的小学生 1 Redis为什么是key value的 为什么不是支持SQL的 这题第一眼看到有点懵逼 选择key value的原因 key value简单粗暴 使用方便 效率更佳 为什么不支持sql 因为redis的内存模型是一个ha