拼多多后端开发(2020.1)

1、自我介绍,为什么这么快就想换工作。项目。

2、redis常用的数据结构,项目中用过哪几种,业务中使用的场景

3、redis的hash怎么实现的,rehash过程讲一下 和JavaHashMap的rehash有什么区别?redis cluster怎么做到高可用的?

4、redis集群和哨兵机制有什么区别?redis的持久化机制了解吗?遇到过redis的hotkey吗?怎么处理的?

5、redis是单线程的吗?单线程为什么还这么快?讲一讲redis的内存模型?

6、简单说一下RabbitMQ的工作原理?如何保证消息的顺序执行?

7、卡夫卡了解吗?和RabbitMQ有什么区别?

8、tcp/udp简单说下两者的区别?tcp为什么要三次握手和四次挥手?两次握手可以不?会有什么问题?tcp怎么保证有序传输的

9、讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用?

10、http与https区别?https是怎么做到安全的?

11、有没有了解过协程?说下协程和线程的区别?用过哪些linux命令?如查看内存使用、网络情况?

12、你了解哪些设计模式啊。挑一个熟悉的讲讲?(除了单例模式)在项目中有用过设计模式吗?讲讲你怎么用的?简单说一下适配器模式和装饰器模式?

13、索引的常见实现方式有哪些,有哪些区别?

14、MySQL的存储引擎有哪些,有哪些区别?InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?

15、raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?

16、paxos和zookeeper的zab算法,他们之前有啥区别?

17、如果我是想一个人的姓名一样就认为他们equal,能现场写下我们怎么重写equals吗?如果两个对象,一个是cat,一个是dog,我们认为他们的name属性一样就一样,怎么重写equals

18、还有点时间,写个题吧,leetcode406.根据身高重建队列

假设有打乱顺序的一群人站成一个队列。每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 
编写一个算法来重建这个队列。
注意:总人数少于1100人。
示例
输入:
[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
输出:
[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]