5/10七牛云一面
后台开发岗
时长35min左右
1、分布式缓存是有项目在用还是自己学习的项目
2、介绍分布式缓存的整个实现的过程?
3、单机和分布式缓存怎么实现?
单机:
用锁避免冲突,底层实现用的什么数据结构(双向链表+map)。
描述节点增加/删除的过程,节点怎么移动?
所有的操作(map+链表)都会被锁住?
有什么更好的方式尽量避免锁冲突?
分布式:
多个节点提供服务?提供的是什么样机制?(sdk访问服务获取缓存还是?)
多个节点分布式,多个服务用户会请求那个服务?
一致性哈希算法?
整个流程:从什么地方请求?什么地方收到请求?什么地方处理一致性哈希?什么地方是真正的缓存服务?(还是说缓存服务是在一个进程内部的?)
4、Slice和数组的区别和联系(底层、扩容)
5、定义一个函数,变量声明的是slice类型,用数组怎么传递进去?
如:Func(slice []int), arr [5]int怎么传值给slice