一面:
自我介绍
问:先来一道代码题:
多个有序单链表归并为一个有序链表,要求不能自己建立新节点,复杂度NlogN
问:平时会用哪些数据结构
回答:切片、哈希表
问:哈希表的底层实现是什么
答:balbala
问:能实现一下吗?你自己定结构体
要求实现一个put(key string val string)实现键值都是string类型的hashmap的插入
问:堆排序熟悉吗?实现堆排序插入的函数
没有给反问时间,直接挂断了。
二面:
自我介绍
问:redis 熟悉吗?
问:redis数据结构都有哪些?底层实现用的是什么?
问:ziplist为什么可以节省空间?rehash过程是什么,为什么要这样做?
问:有序集合底层实现是什么?
问:skiplist实现原理,以及为什么要使用skiplist而不是红黑树。
问:redis网络模型熟悉吗?为什么是单线程,redis6.0多线程实现是什么样的。
问:redis是怎么保证多线程进来的多个命令,保持顺序进入单线程的命令处理模块的。
答:应该类似golang中channel,管道的方式实现。
问:channel底层了解吗?golang中向管道写数据是否会对管道加锁。
问:MySQL索引实现。(B+树相关,以及为什么不用B树,B+树的优势在哪里)
问:数据库的隔离级别,MySQL中innodb默认的隔离级别,mvcc如何实现的,以及mvcc能否解决幻行的问题。
算法题:
三个数组的归并排序
查找一个字符串中无重复字符的最长子串。
反问:表现怎么样
答:等HR通知
反问:mvcc能解决幻行吗?
答:自己百度。
三面:
自我介绍
问:两台主机输入同一个url地址出现页面不同可能的原因。
答:token不同,cookie不同,本机对url缓存解析不同。这之中又问了问cookie和session,DNS解析的过程等
问:restful接口是什么?
问:redis集群直到吗?如何实现在集群中找到对的服务器。
问:一致性哈希知道吗?
问:mysql索引优化。
智力题:两个人抛硬币,先抛到正面的赢,问先后手的胜率是多少。
算法题:
类似剑指offer47,将最大值换为最小值即可。很简单的动态规划。
问:校园生活
反问:表现怎么样。
答:等HR通知
全部评论
(6) 回帖