字节1&2面

这是秋招提前批,一二面是连着的

Web

1. Redis的使用场景

在我的项目中主要用来做三件事情:1. 缓存热点值;2. 缓存用户token;3. 缓存库存
其他的还有如:
分布式锁,zset的排行榜,pop/push生产者消费者,hash实现好友关系,登陆过期时间,计数器,布隆过滤器(推荐系统,爬虫系统等)

2. Redis中key对于不同实例的映射算法

Redis使用Hash槽来实现
一致性hash如何解决机器少的问题
这个是数据倾斜的问题,可以设置多个虚拟节点然后再hash

3. Redis的集群模型

  1. 主从复制
  2. 哨兵模式
  3. cluster模式

4. 令牌桶算法

计算机网络

1. 七层模型和五层模型

物理层,数据链路层,网络层,传输层,应用层(会话层,表示层,应用层)

2. Cookie和Session的区别

如何保证session信息不丢失:集群

3. 浏览器中URL的一个过程

4. UDP和TCP的区别

DNS用的什么协议

5. HTTP的状态码

6. HTTP的方法以及区别

get可以改为post吗
不可以,get是幂等的

7. TCP的特点

拥塞控制和流量控制

8. TCP的三次握手和四次挥手

close_wait和time_wait

9. HTTP的header

10. HTTPS的实现方式

端口号

11. 滑动窗口的作用

操作系统

1. 线程和进程的区别

2. 分页中断机制

FIFO,LRU,OPT
原因是什么
1、当内存管理单元(MMU)中确实没有创建虚拟物理页映射关系,并且在该虚拟地址之后再没有当前进程的线性区(vma)的时候,可以肯定这是一个编码错误,这将杀掉该进程;
2、当MMU中确实没有创建虚拟页物理页映射关系,并且在该虚拟地址之后存在当前进程的线性区vma的时候,这很可能是缺页中断,并且可能是栈溢出导致的缺页中断;
3、当使用malloc/mmap等希望访问物理空间的库函数/系统调用后,由于linux并未真正给新创建的vma映射物理页,此时若先进行写操作,将和2产生缺页中断的情况一样;若先进行读操作虽然也会产生缺页异常,将被映射给默认的零页,等再进行写操作时,仍会产生缺页中断,这次必须分配1物理页了,进入写时复制的流程;
4、当使用fork等系统调用创建子进程时,子进程不论有无自己的vma,它的vma都有对于物理页的映射,但它们共同映射的这些物理页属性为只读,即linux并未给子进程真正分配物理页,当父子进程任何一方要写相应物理页时,导致缺页中断的写时复制

3. IO复用模型

4. 堆和栈的区别

5. 进程的状态

6. 进程的通信方式

7. 用户态和内核态

8. 二维数组行和列的遍历速度

9. 进程的转换

10. 操作系统常用的命令

查找文件名
查找文件中的字符串
查看网络端口
查看进程所占内存

MySql

1. 存储引擎的区别

2. Mysql的索引类型

覆盖索引,主键索引,唯一索引,聚簇索引,前缀索引

代码

1. 查看IP是否在某一范围内

如果有很多个范围呢?

2. 写一个线程安全的单例模式

3. 两数相加

你可能感兴趣的:(算法和数据结构)