redis考点分析与总结

Redis 主要还是会结合项目来考察,比如你项目用到了 Redis,那么就会问你 Redis 相关面试题,比重的话,我感觉和操作系统的比重差不多,大小公司都会考察。

下面我先给大家分析一下 Redis 各个知识点的考点以及大公司和小公司在操作系统上的考点,并且会按照出现的频率来给大家弄清楚考点,最后还有给出面试中都是怎么询问的。

希望大家可以认真看一下,看完你内心也有一个大概了。

一、考点比例分布

我这里把 Redis 也是分成两个模块,一个是 Redis 基础知识,一个是 Redis 处理大数据的,比如主从,集群,分布式这些,之所以要这样来分,主要是因为对于后者,如果你不懂,可以直接说不懂,但是对于前者,如果不懂,那就说不过去了,除非简历上没有写过。

总的来说就是,基础 : 高级 = 3 :1,大部分还是问基础,一般都是聊着聊着才问你分布式,集群等相关。所以我们学习的时候,是优先把基础掌握了,再去试着学习分布式,集群的一些理论,其实问来问去也就是问那几个。

二、小公司与大公司的提问区别

总的来说就是,小公司更加偏向实用性,而大公司会问理论性,比方说问你有哪些数据结构,你说了之后,可能小公司就会问你在项目中用过哪些,而很少会问你 zset 的底层原理,但是大公司则会问你 zset 的底层原理,然后问你跳表各种相关的。

也就是说,小公司问的时候,可能会具体一些,主要试探你用过没有,会不会用,而不会从一个简单的点,上升到各种分布式,集群之类的。

三、超详细考点总结(按照出现频率排序)

Redis 基础知识需要掌握的点(按照出现频率排序)

1、redis 五种常见数据结构的特点以及应用场景

2、zset 的底层数据结构 + 掌握跳表的原理

3、redis 的过期删除策略

4、理解缓存穿透 + 缓存雪崩,以及掌握他们的解决方式。

5、掌握布隆过滤器

6、redis两种持久化方式以及他们的区别 + redis 默认用的是哪种持久化方式

7、redis 之所以快的原理

8、掌握哈希这种数据结构的扩容原理 + 渐进式 rehash

9、redis事务(简单了解,主要redis的事务还mysql有点不一样)

Redis 基础知识提问方式

1、redis几种常见的结构?(string list hash set zset)

2、zset底层数据结构

3、实际项目中用到了redis哪些数据结构 用list做了什么

4、说一说跳表的具体结构?时间复杂度?

5、Redis除了常用的数据结构外,还熟悉其他的数据结构吗?

6、redis的过期策略?(定时、定期、惰性)

7、redis的缓存穿透?有什么解决办法吗(返回空对象、布隆过滤器)

8、怎么防止缓存击穿的问题?

9、缓存穿透, 缓存击穿, 缓存雪崩基本概念及解决方案。

10、说一说布隆过滤器,布隆过滤器的原理是什么?它的优点是什么?缺陷是什么?

11、redis怎么实现持久化?持久化能保证不丢失数据吗?

12、redis的默认持久化方式

13、RDB fork的子进程干了啥

14、Aof重写Fork的子进程在干嘛Redis为啥快

15、说说redis架构(单线程,io多路复用)

16、对Redis了解多吗?你觉得Redis最核心的功能是什么?

17、Redis存储地图的数据结构,即GEO(地理位置)数据类型,有什么特点呢?有没有用过

18、如果设置热点数据永不过期会出现什么后果

19、说一说哈希的动态扩容

Redis 高级部分知识需要掌握的点(按照出现频率排序)

1、缓存和数据库一致性问题:为啥会出现以及常见的解决方式

2、redis 实现一个分布式锁以及用 redis 的缺点

3、redis 集群的几个理论:哨兵选举/master 选举原理

4、用redis来统一存放 session,实现单点登录问题

Redis 高级部分知识提问方式

1、缓存和数据库怎么保证一致性

2、redis为什么能实现分布式锁?用伪代码实现一个分布式锁

3、除了redis能实现还有其他实现方式吗

4、redis哨兵集群相关问题(怎么主从同步,怎么哨兵选举, 怎么master选举)

5、Redis的集群模式,选举和脑裂

发表评论

后才能评论