你好,我是田哥
一晃又到年底了,也就意味着金三银四
又要到了,没拿到年终奖,或者对当前工资不满意的同学又开始想换工作了。
想换工作就得好好准备面试,毕竟面试造火箭,进去拧螺丝
,话又说回来,又有句话叫做可以不用,但不能没有。
Redis已经成为一个Java开发必备的技能之一了,所以,在面试中占比依旧很高,为了让你在面试中能更加得心应手,我给你准备了109道Redis面试题。
109道面试题,不敢说完全覆盖,但至少能覆盖90%以上的面试,好好准备,来年不求吊打面试官,但求能找到一个满意的工作。
Redis面试题
Redis的数据类型有哪些?
你觉得 Redis是什么?
Redis有哪些特点
分布式缓存常见的技术选型方案有哪些?
说一下Memcache与 Redis 的区别都有哪些?
现在让你实现本地缓存,你有哪些方案?
项目中为什么要用Redis?
Redis的应用场景有哪些?
说一下Redis 通讯协议是什么?有什么特点?
请说一下Redis 支持的哪些数据类型
一个字符串类型的值能存储最大容量是多少?
Redis 各个数据类型最大存储量分别是多少?
请介绍一下 Redis 的数据类型 SortedSet(zset)以及底层实现机制?
有了解过Redis 事务吗?原理是什么?
Redis 事务有相关命令有哪些?
Redis 事务的注意点有哪些?
Redis 支持回滚回滚吗?支与不支持的理由是什么?
请介绍一下 Redis 的 Pipeline(管道),以及使用场景
请说明一下 Redis 的批量命令与 Pipeline 有什么不同?
设置键的生存时间和过期时间有哪些命令?
请介绍一下 Redis 的发布订阅功能
Redis 的链表数据结构的特征有哪些?
请介绍一下 Redis 的 String 类型底层实现?
Redis 的 String 类型使用 SSD 方式实现的好处?
为什么 Redis 需要把所有数据放到内存中?
Redis 是多线程还是单线程?
Redis6.0 之后为何引入了多线程?
Redis 为什么设计成单线程的?
简单说说Redis单线程原理
Redis是单线程还是多线程?Redis为什么这么快?
什么是缓存穿透?怎么解决?
用分布式缓存,要注意哪些问题?
什么是缓存雪崩?怎么解决?
缓存的更新策略有几种?分别有什么注意事项?
请介绍几个可能导致 Redis 阻塞的原因
怎么去发现 Redis 阻塞异常情况?
Redis 集群架构模式有哪几种?
哨兵选举过程是怎么样的?
Redis 集群最大节点个数是多少?
Redis 集群的主从复制模型是怎样的?
你知道的Redis 集群实现方案有哪些?
Redis 集群会有写操作丢失吗?为什么?
Redis慢查询是什么?通过什么配置?
Redis 的慢查询修复经验有哪些?怎么修复的?
有做过Redis 服务的性能优化过吗?
说一下Redis 的主从复制模式的优缺点?
说一下Redis sentinel(哨兵)模式的优缺点?
熟悉Redis的连接数的操作吗?
介绍一些 Redis 常用的安全设置?
说一下Redis 持久化机制有哪些?
说一下Redis持久化机制 AOF 和 RDB 什么不同?
说一下两种持久化的优缺点优缺点
如果 AOF 文件的数据出现异常, Redis 服务怎么处理?
常见的淘汰算法有哪些?
Redis 淘汰策略有哪些?
Redis 缓存失效策略有哪些?
Redis 如何做内存优化?
什么是 bigkey?有什么影响?
怎么发现 bigkey?
Redis 的内存消耗分类有哪些?内存统计使用什么命令?
简单介绍一下 Redis 的内存管理方式有哪些?
如何设置 Redis 的内存上限?有什么作用?
Redis 报内存不足怎么处理?
Redis 适用场景有哪些?
Redis有哪些常见应用场景 ?
Redis 支持的 Java 客户端有哪些?
请简单描述一下 Jedis 的基本使用方法?
Jedis 连接池链接方法有什么优点?
什么是分布式锁?有什么作用?
分布式锁实现方案有哪些?
介绍一下分布式锁实现需要注意的事项?
Redis 怎么实现分布式锁?
缓存命中率表示什么?
怎么提高缓存命中率?
Redis 中 key已经过期了,但为什么内存并没有释放?
你说说Redis中的跳表
说说你对 Redis中的I/O多路复用模型 的理解
Redis是单线程还是多线程?
如何保证缓存和数据库的一致性?
Redis实现分布式锁,如果业务超时了,怎么办?
在你们项目中,Redis的持久化机制用的是哪种?
MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
Redis事务支持隔离性吗
Redis事务保证原子性吗,支持回滚吗
LRU 是什么?如何实现?
新的主节点是怎样被挑选出来的?
Redis集群中数据如何分区?
Redis部署集群至少需要几个物理节点?
说说集群的伸缩?
能说说布隆过滤器吗?
大key问题了解吗?
大key会造成什么问题呢?
如何找到大key?
如何处理大key?
使用Redis 如何实现异步队列?
为什么说Redis的性能很好?
说说Redis的同步机制
如何进行缓存降级?
Redis 的脑裂问题是怎么解决的?
Redis如何实现签到功能?
Jedis 与 Redisson 对比有什么优缺点?
说说 Redis 哈希槽的概念?
Redis 回收进程如何工作的?
Redis 持久化数据和缓存怎么做扩容?
分布式 Redis 是前期做还是后期规模上来了再做好?为什么?
一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?
修改配置不重启 Redis 会实时生效吗?
假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
Redis 如何实现延时队列
快速回顾核心知识
这么多面试题单纯的看起来确实有点不太让人舒服,所以,我建议你可以先快速对Redis的核心知识进行复习一遍,然后再背面试题。
后记
最后,千万别小看这些面试题,基本上涵盖了Redis所有知识点,尤其是高频面试知识点。另外,建议在背面是通过的同时,还是适当去理解一下,背 理解才是王道。
扯了半天,只看到面试题没有答案,这不是扯么?答案肯定有的。
答案在我的博客里:http://woaijava.cc/mianshi/index
对于没有用过Redis的同学,强烈建议你自己搞个demo练练手,挤挤时间练习一下如何搭建集群,适当看看配置文件相关内容,这样出去吹NB自己真的用过,面试官更加信服。
好了,今天就分享这么多。
啰嗦几句
机会总是留给有准备的人,不要总是逃避,不要总是抱怨,要踏踏实实的、一步一个脚印的来。
2023年做一个不一样的自我,加油!