基础知识点(一)

1、redis常用的数据结构以及在业务中使用的场景。
2、redis的hash怎么实现的?
3、rehash过程讲一下和JavaHashMap的rehash有什么区别?
4、redis cluster有没有了解过,怎么做到高可用的?
5、说说redis的持久化机制,为啥不能用redis做专门的持久化数据库存储?
6、了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?
7、tcp怎么保证有序传输的,讲下tcp的快速重传和拥塞机制
8、知不知道time_wait状态,这个状态出现在什么地方,有什么用?
9、udp是不可靠的传输,如果你来设计一个基于udp差不多可靠的算法,怎么设计?
10、http与https有啥区别?说下https解决了什么问题,怎么解决的?说下https的握手过程。
11、讲解下etcd干什么用的,怎么保证高可用和一致性?
12、既然你提到了raft算法,讲下raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?
13、有没有了解过paxos和zookeeper的zab算法,他们之前有啥区别?
14、你们后端用什么数据库做持久化的?有没有用到分库分表,怎么做的?
15、索引的常见实现方式有哪些,有哪些区别?
16、MySQL的存储引擎有哪些,有哪些区别?
17、InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?
18、有没有了解过协程?说下协程和线程的区别?
19、MySQL这块很熟了,包括索引,锁,事务机制以及mvcc等等,没啥说的,都已经补齐了。
20、协程和线程,主要说了go程和Java线程的区别以及go程的调度模型。面试官提示没有提到线程的有内核态的切换,go程只在用户态调度。
21、tcp 粘包问题怎么处理?
22、其中有个题:go程和线程有什么区别?
答:起一个go程大概只需要4kb的内存,起一个Java线程需要1.5MB的内存;go程的调度在用户态非常轻量,Java线程的切换成本比较高。
接着问为啥成本比较高?因为Java线程的调度需要在用户态和内核态切换所以成本高?为啥在用户态和内核态之间切换调度成本比较高?我简单说了下内核态和用户态的定义。
还问了一个问题定位的问题,服务器CPU 100%怎么定位?
先用top定位出问题的进程,再用top定位到出问题的线程,再打印线程堆栈查看运行情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值