5/10七牛云一面

后台开发岗

时长35min左右

1、分布式缓存是有项目在用还是自己学习的项目

2、介绍分布式缓存的整个实现的过程?

3、单机和分布式缓存怎么实现?

单机:
用锁避免冲突,底层实现用的什么数据结构(双向链表+map)。
描述节点增加/删除的过程,节点怎么移动?
所有的操作(map+链表)都会被锁住?
有什么更好的方式尽量避免锁冲突?
分布式:
多个节点提供服务?提供的是什么样机制?(sdk访问服务获取缓存还是?)
多个节点分布式,多个服务用户会请求那个服务?
一致性哈希算法?
整个流程:从什么地方请求?什么地方收到请求?什么地方处理一致性哈希?什么地方是真正的缓存服务?(还是说缓存服务是在一个进程内部的?)

4、Slice和数组的区别和联系(底层、扩容)

5、定义一个函数,变量声明的是slice类型,用数组怎么传递进去?

如:Func(slice []int), arr [5]int怎么传值给slice

6、线程同步用过哪些方式

7、Channel需要close,一般是读取方close还是发送方close

8、进程和线程的区别联系(基本单位、开销、一对多)

9、Gin开源框架了解?

10、中间件middleware用过?

11、Session的中间件用过吗?

12、令牌桶策略是个什么样的策略?原理?

13、其他的开源项目有使用的经历吗,如redis和mysql这些

15、缓存穿透和缓存击穿?解决方式?

16、Linux命令用到过吗?

#面试复盘##实习#
全部评论
大佬是geekturu的那个分布式缓存吗
点赞 回复 分享
发布于 2023-01-13 21:04 广西
lz在哪投的呀
点赞 回复 分享
发布于 2022-05-24 21:55
kodo部门吗
点赞 回复 分享
发布于 2022-05-18 15:09
请问会有邮件告知结果吗
点赞 回复 分享
发布于 2022-05-15 14:45
楼主二面有消息吗
点赞 回复 分享
发布于 2022-05-13 01:14

相关推荐

06-20 10:13
已编辑
门头沟学院 Java
算法题第一个乍一看好像力扣原题,但是输入是List[int],并非root,然后一直纠结换成树节点再做,但是好像TreeNode不能直接使用,后来有一个新的思路,寻找父节点和孩子节点的关系 2*i+1,2*i+2反正最后还是没写出来,回来让gpt写了,思路应该可以吧。from typing import Listfrom collections import dequedef right_side_view_from_list(nums: List[int]) -> List[int]:    if not nums or nums[0] == -1:        return []    result = []    q = deque()    q.append(0)  # 从根节点的索引 0 开始    while q:        level_size = len(q)        for i in range(level_size):            idx = q.popleft()            if nums[idx] == -1:                continue            if i == level_size - 1:                result.append(nums[idx])            left_idx = 2 * idx + 1            right_idx = 2 * idx + 2            if left_idx < len(nums):                q.append(left_idx)            if right_idx < len(nums):                q.append(right_idx)    return result
投递七牛云等公司7个岗位
点赞 评论 收藏
分享
评论
4
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务