Java面试丨Redis从基础到源码(参考答案)
别问我为什么有答案不写,问就是太多太懒
基础
1.说说什么是Redis?2.Redis可以用来干什么?
3.Redis 有哪些数据结构?
4.Redis为什么快呢?
5.能说一下I/O多路复用吗?
6. Redis为什么早期选择单线程?
7.Redis6.0使用多线程是怎么回事?
持久化
8.Redis持久化⽅式有哪些?有什么区别?9.RDB 和 AOF 各自有什么优缺点?
10.RDB和AOF如何选择?
11.Redis的数据恢复?
12.Redis 4.0 的混合持久化了解吗?
高可用
13.主从复制了解吗?14.Redis主从有几种常见的拓扑结构?
15.Redis的主从复制原理了解吗?
16.说说主从数据同步的方式?
17.主从复制存在哪些问题呢?
18.Redis Sentinel(哨兵)了解吗?
19.Redis Sentinel(哨兵)实现原理知道吗?
20.领导者Sentinel节点选举了解吗?
21.新的主节点是怎样被挑选出来的?
22.Redis 集群了解吗?
23.集群中数据如何分区?
24.能说说Redis集群的原理吗?
25.说说集群的伸缩?
缓存设计
26.什么是缓存击穿、缓存穿透、缓存雪崩?27.能说说布隆过滤器吗?
28.如何保证缓存和数据库数据的⼀致性?
29.如何保证本地缓存和分布式缓存的一致?
30.怎么处理热key?
31.缓存预热怎么做呢?
32.热点key重建?问题?解决?
33.无底洞问题吗?如何解决?
Redis运维
34.Redis报内存不足怎么处理?35.Redis的过期数据回收策略有哪些?
36.Redis有哪些内存溢出控制/内存淘汰策略?
37.Redis阻塞?怎么解决?
38.大key问题了解吗?
39.Redis常见性能问题和解决方案?
Redis应用
40.使用Redis 如何实现异步队列?41.Redis 如何实现延时队列?
42.Redis 支持事务吗?
43.Redis和Lua脚本的使用了解吗?
44.Redis的管道了解吗?
45.Redis实现分布式锁了解吗?
底层结构
46.说说Redis底层数据结构?47.Redis 的 SDS 和 C 中字符串相比有什么优势?
48.字典是如何实现的?Rehash 了解吗?
49.跳跃表是如何实现的?原理?
50.压缩列表了解吗?
51.快速列表 quicklist 了解吗?
其他问题
52.假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来?