面试必备!Redis面试题合集

目录

1.Redis简介

2. 分布式缓存常见的技术选型方案有哪些?

3. 说一下 Redis 和 Memcached 的区别和共同点

4. 缓存数据的处理流程是怎样的? 

5. 为什么要用 Redis/为什么要用缓存?

6. Redis 常见数据结构以及使用场景分析

6.1. string

6.2. list

6.3. hash

6.4. set

6.5. sorted set

6.6 bitmap

7. Redis 单线程模型详解

8. Redis 没有使用多线程?为什么不使用多线程?

9. Redis6.0 之后为何引入了多线程?

10. Redis 给缓存数据设置过期时间有啥用?

11. Redis 是如何判断数据是否过期的呢?

12. 过期的数据的删除策略了解么?

13. Redis 内存淘汰机制了解么?

14. Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复)

15. Redis 事务

16. 缓存穿透

16.1. 什么是缓存穿透?

16.2. 缓存穿透情况的处理流程是怎样的?

16.3. 有哪些解决办法?

16.3.1、缓存无效 key

16.3.2、布隆过滤器

17. 缓存雪崩

17.1. 什么是缓存雪崩?

17.2. 有哪些解决办法?

18. 如何保证缓存和数据库数据的一致性?

19、Reids的特点

20、使用redis有哪些好处?

String

Hash

List

Set

Sorted Set

21、redis相比memcached有哪些优势?

22、Memcache与Redis的区别都有哪些?

23、redis适用于的场景?

23.1、会话缓存(Session Cache)

23.2、全页缓存(FPC)

23.3、队列

23.4、排行榜/计数器

23.5、发布/订阅

24、redis的缓存失效策略和主键失效机制

24.1、影响生存时间的一些操作

24.2、如何更新生存时间

25、为什么redis需要把所有数据放到内存中?

26、Redis是单进程单线程的

27、redis的并发竞争问题如何解决?

28、redis常见性能问题和解决方案

29、redis事物的了解CAS(check-and-set 操作实现乐观锁)?

30、WATCH命令和基于CAS的乐观锁?

31、使用过Redis分布式锁么,它是什么回事?

32、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

33、使用过Redis做异步队列么,你是怎么用的?

34、如果有大量的key需要设置同一时间过期,一般需要注意什么?

35、Redis如何做持久化的?

36、Pipeline有什么好处,为什么要用pipeline?

37、Redis的同步机制了解么?

38、是否使用过Redis集群,集群的原理是什么?

39、Redis 的数据类型?

40、使用 Redis 有哪些好处?

41、Redis 相比 Memcached 有哪些优势?

42、Memcache 与 Redis 的区别都有哪些?

43、Redis 是单进程单线程的?

44、一个字符串类型的智能存储最大容量是多少?

45、Redis 的持久化机制是什么?各自的优缺点?

46、Redis 常见性能问题和解决方案

47、Redis 过期键的删除策略?

48、Redis 的回收策略(淘汰策略)?

49、为什么 Redis 需要把所有数据放到内存中?

50、Redis 的同步机制了解么?

51、Pipeline 有什么好处,为什么要用 Pipeline?

52、是否使用过 Redis 集群,集群的原理是什么?

53、Redis 集群方案什么情况下会导致整个集群不可用?

54、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

55、Jedis 与 Redisson 对比有什么优缺点?

56、Redis 如何设置密码及验证密码?

57、说说 Redis 哈希槽的概念?

58、Redis 集群的主从复制模型是怎样的?

59、Redis 集群会有写操作丢失吗?为什么?

60、Redis 集群之间是如何复制的?

61、Redis 集群最大节点个数是多少?

62、Redis 集群如何选择数据库?

63、怎么测试 Redis 的连通性?

64、怎么理解 Redis 事务?

65、Redis 事务相关的命令有哪几个?

66、Redis key 的过期时间和永久有效分别怎么设置?

67、Redis 如何做内存优化?

68、Redis 回收进程如何工作的?

69、都有哪些办法可以降低 Redis 的内存使用情况呢?

70、Redis 的内存用完了会发生什么?

71、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?

72、MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?

73、Redis 最适合的场景?

74、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?

74.1、对方接着追问:如果这个 Redis 正在给线上的业务提供服务,那使用 keys 指令会有什么问题?

75、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

76、使用过 Redis 做异步队列么,你是怎么用的?

76.1、如果对方追问 pub/sub 有什么缺点?

76.2、如果对方追问 Redis 如何实现延时队列?

77、使用过 Redis 分布式锁么,它是什么回事?


1.Redis简介

简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。

另外,Redis 除了做缓存之外,也经常用来做分布式锁,甚至是消息队列。

Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

2. 分布式缓存常见的技术选型方案有哪些?

分布式缓存的话,使用的比较多的主要是 MemcachedRedis。不过,现在基本没有看过还有项目使用 Memcached 来做缓存,都是直接用

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

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

相关文章

Spring源码注解篇二:手写@Component注解

Component注解的功能 在Spring框架中,Component 注解是一个核心特性,用于自动检测类并将其注册为Spring应用上下文中的Bean。这大大简化了Bean的配置过程,使得开发者能够通过注解的方式快速地将类标记为组件,并由Spring容器进行管…

硬件检测工具 | CPU-Z v2.10.0 官方中文绿色版

软件简介 CPU-Z是一款广受欢迎的硬件检测工具,主要用于收集电脑处理器的详细信息。这款软件能够提供关于CPU的详细数据,包括处理器名称、编号、代号、进程和缓存等信息。此外,CPU-Z还能实时监测每个内核的内部频率和内存频率,以及…

【洛谷B3644】【模板】拓扑排序 / 家谱树 解题报告

洛谷B3644 - 【模板】拓扑排序 / 家谱树 题目描述 有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列,使得每个人的后辈都比那个人后列出。 输入格式 第 1 1 1 行一个整数 N N N&#xf…

Java字节流的输入输出

Java字节流的输入输出指的是使用Java中的字节流来进行数据的读取和写入操作。字节流是以字节为单位进行读写操作的,常用于处理二进制数据或者字符数据。 Java中常用的字节流类有InputStream和OutputStream。InputStream用于读取字节数据,OutputStream用…

【运维项目经历|037】MFS-Scale分布式对象存储系统部署与优化项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目录 项目名称 项目背景 项目目标 …

如何在项目中打印sql和执行的时间

目标:打印DAO方法中sql和执行的时间 一种方式是去实现Mybatis的拦截器Interceptor ,比较麻烦; 这里介绍一种比较简单的实现方式; 1、如何打印sql? 配置文件加这个可以打印出com.zhenhui.ids.busi.watch包下执行的sq…

c++包管理器

conan conan search,查看网络库 conan profile detect,生成缓存信息conan new cmake_exe/cmake_lib,创建cmakelists.txtconan install .,执行Conanfile.txt中的配置,生成相关的bat文件 项目中配置Conanfile.txt(或者…

ImportError: DLL load failed while importing _swigfaiss: 找不到指定的模块。

ImportError: DLL load failed while importing _swigfaiss: 找不到指定的模块 这个错误通常是由于系统中缺少某些必要的动态链接库(DLL)文件,或者由于与当前环境中的库版本不兼容导致的。以下是一些解决这个问题的步骤: 方法一&…

linux高级编程(sqlite数据库调用)

数据库 1、分类: 大型 中型 小型 ORACLE MYSQL/MSSQL SQLITE DBII powdb 关系型数据库 2、名词: DB 数据库 select update database DBMS 数据库管理系统 MIS 管理…

tessy 集成测试:小白入门指导手册

目录 1,创建集成测试模块且分析源文件 2,设置测试环境 3,TIE界面设置相关函数 4,SCE界面增加用例 5,编辑数据 6,用例所对应的测试函数序列 7,添加 work task 函数 8,为测试场景添加函数 9,为函数赋值 10,编辑时间序列的数值 11,执行用例 12,其他注意事项…

《昇思25天学习打卡营第2天|初学教程/快速入门》

文章目录 快速入门处理数据集网络构建模型训练保存模型加载模型 快速入门 通过MindSpore的API来快速实现一个简单的深度学习模型。 MindSpore 是华为推出的一个全场景深度学习框架,它旨在实现易开发、高效执行和全场景覆盖的目标。这个框架支持云、边缘以及端侧场…

零基础STM32单片机编程入门(十四) DS18B20温度传感器模块实战含源码

文章目录 一.概要二.DS18B20主要性能参数三.DS18B20温度传感器内部框图四.DS18B20模块原理图五.DS18B20模块跟单片机板子接线和通讯时序1.单片机跟DS18B20连接示意图2.单片机跟DS18B20通讯流程与时序3.通讯流程中的9个数据字节内容格式4.温度数据寄存器LSB/MSB格式 六.STM32单片…

ROS2入门到精通—— 1-3 ROS1移植到ROS2系统梳理

ROS2同一功能包只能同时包含Python或者C一种 1 ROS1 && ROS2 CMakeList.txt ROS1中CMakeLists.txt架构如下: cmake_minimum_required() #CMake的最低版本号project() #项目名称find_package() #找到编译需要的其他CMake/Catkin package catkin_py…

【HarmonyOS】鸿蒙中如何获取用户相册图片?photoAccessHelper.PhotoViewPicker

【HarmonyOS】鸿蒙中如何获取用户相册图片?photoAccessHelper.PhotoViewPicker 前言 有同学私聊我说,之前的博客文章提到的没有HarmonyOS白名单帐号,如何在OpenHarmony Gitee开发仓里学习API接口。需要注意一个点,默认看到的文档…

图、图的遍历、最小生成树、最短路径

0、图的概念 **图:**是由顶点集合及顶点间的关系组成的一种数据结构:G (V, E),其中: 顶点集合V {x|x属于某个数据对象集}是有穷非空集合;边的集合E {(x,y)|x,y属于V}或者E {|x,y属于V && Path(x, y)}是顶…

浅学三次握手

数据要完成传输,必须要建立连接。由于建立TCP连接的过程需要来回3次,所以,将这个过程形象的叫做三次握手。 结合上面的图来看更清楚。 先说三次握手吧,连接是后续数据传输的基础。就像我们打电话一样,必须保证我和对方…

在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位一、数据实时监控的重要性二、PostgreSQ…

shell,重定向与管道符号

文章目录 一,什么是shell二,shell脚本和作用1. shell脚本2. 作用 三,shell脚本的构成内容四,创建和运行Shell脚本五,重定向与管道操作1. 交互式硬件设备2. 重定向操作概览表3. 管道操作 一,什么是shell sh…

Matlab 判断直线上一点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 判断一个点是否位于一直线上有很多方法,这里使用一种很有趣的坐标:Plucker线坐标,它的定义如下所示: 这个坐标有个很有趣的性质,我们可以使用Plucker坐标矢量构建一个Plucker矩阵: 则它与位于对应线上的齐次点…

排序(三)——归并排序(MergeSort)

欢迎来到繁星的CSDN,本期内容主要包括归并排序(MergeSort)的实现 一、归并排序的主要思路 归并排序和上一期讲的快速排序很像,都利用了分治的思想,将一整个数组拆成一个个小数组,排序完毕后进行再排序,直到整个数组排序…