问题是多变的,但是知识点是不变的,而且是相互连通的。所以掌握了知识点融会贯通才能以不变应万变。融合往往在脑子里进行,楼主尽量通过遇到的面试题来把他们串起来。
1、Redis有那些数据结构?你用过哪些?(这算是很普通的一个问题切入方式了)
用过的数据结构:字符串String,SortedSet。
String的应用场景:作为字典key-value的形式存储,业务场景中被用作分布式锁。
SortedSet:用作阻塞队列。
2.说一下SortedSet的底层实现,了解跳表吗?
底层实现:个数小于64的时候是用的压缩列表,大于62用的跳表和哈希表。
3、说一下分布式锁是怎么实现的?
Redis实现分布式锁(错误的方法)
Redis实现分布式锁(正确的方式)
4、Redis锁中其实主要就是用到了Key失效机制还避免死锁,用Lua脚本来保证原子性,避免多客户端时间不一致的问题。那么Redis的Key失效机制是怎么样的呢?
5、key失效机制又会涉及到集群的情况下主从的一致性问题?以及Redis持久化文件AOF的问题?
6、Redis的IO多路复用问题?(以及由此引出的linux多路复用)
7、codis的架构图,zookeeper在其中起了什么作用
目前只想到这些问题,如果你有更好的问题可以告诉楼主哦!