分享一下最近的面试笔记【转载】

本文是转载自 分享一下最近的面试笔记
很久没有面试过, 此文借他人的面试经历, 对一些知识做一些答案

Go篇

channel (必问)

channel 实现原理,底层实现结构,讲讲怎么优雅的关闭一个 channelchannel 有哪些应用,什么情况下 channel 会造成内存泄露?

map (必问)

map 的底层实现,什么情况下会扩容,怎么扩容?是线程安全的吗?那 sync 包中的 map 是怎么实现线程安全的?

context

这个一般只会问问 context 包的作用,还有一个碰到很少见的问题,context.Value 查找的过程是什么?

gmp (必问)

背就完事了

gc (必问)

背不下来,提桶跑路吧。插一句,这个有的公司喜欢问各个版本 stw 的时机都是什么。

反射

内存管理

内存逃逸

杂项

数组和切片区别,make 和 new 区别。进程、协程、线程区别。

MySQL篇

MySQL索引 (必问)

包括索引的类型,索引的数据结果,b + 树和 hash 的区别,b + 树和 b 树的区别,索引创建原则。最左原则,聚簇索引,前缀索引等等。

MySQL事务 (必问)

包括事务隔离级别,各个隔离界别解决的问题,mvvc 的原理等。

MySQL锁 (必问)

行锁,表锁,悲观锁啊,乐观锁啊,排它锁,共享锁,间隙锁,范围锁,临键锁,两阶段锁,死锁的原因,事务中各个隔离级别用的锁的类型已经怎么用的锁。

MySQL数据类型 (常问)

mysql 有哪些数据类型,varcharchar 的区别。intint (11) 区别,tinyintint 区别等等。

MySQL日志

binlog 日志的类型有几种,各有什么优缺点,以及一般怎么设置。undologredolog,为什么有 binlog 了还要 redolog,两者有什么区别以及两者生成的时机。

MySQL架构方面

mysql 高可用怎么部署,mysql 读写分离原理是什么? 主从同步慢怎么解决? 如果大批量的删除一堆数据,怎么快速释放内存?delete 删除会立刻释放内存吗?truncatedrop 呢?

MySQL问题排查方面

有没有使用过慢查询,以及怎么解决慢查询,数据量比较大,查询比较慢,你怎么解决的,一般看 mysql 的执行计划,都看哪些参数,以及参数的含义是什么。

Redis篇

redis数据类型 (必问)

redis 常用数据类型,以及使用场景等等。各数据类型的底层数据结构是什么?比如 zset 底层实现是跳跃表 (skiplist),讲讲 skiplist 为什么这么快。

redis的架构 (必问)

这个一般问的是 redis 为什么这么快,除了基于内存操作,还有什么其他原因。redis 是单线程还是多线程?哪部分是单线程,哪部分是多线程?redis 的线程模型(这个问题贼爱问)。

redis内存持久化

为什么要持久化?持久化机制、持久化方式是什么,各有什么优缺点。怎么选择合适的持久化方式,有没有了解过混合持久化?

redis内存淘汰策略

背就完事了

redis事务和管道

一个是在客户端打包,一个是在服务端打包而已。

redis的集群方案 (高频面试点)

这个最爱问了,主从,哨兵,分片(分为客户端和服务端分片)

redis缓存异常解决

缓存穿透、缓存击穿、缓存雪崩解决方式。

缓存一致性

怎么保证 redis 和 mysql 的数据一致性,这个各抒己见吧,可以看看 B 站的毛剑有次的分享,专门讲了怎么解决缓存一致性的问题。

杂项

因为我之前做过一个高并发项目,所以一般爱问分布式锁的实现,还有 redis 的队列和专业的 mq 区别,有没有了解 redis 的 red lock 以及 redis 的 stream 能不能作为专业的 mq,为什么?大批量的删除 redis 中的 key,会有什么问题,怎么解决?redis 怎么实现延时队列,怎么实现异步队列。布隆过滤器了解过吗?

MQ篇

使用过哪些消息队列

RabbitMQ实现消息队列

RabbitMQ死信队列

Kafka

微服务篇

什么是微服务?

怎么划分服务 (结合实际项目讲)

服务治理

包括但不限于:限流,熔断、负载、监控、鉴权、服务发现和注册等等

rpc相关内容

protobuf编码为什么这么高效? 和json比较呢?

gateway相关问题

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2023 Keep It Simple And Stupid All Rights Reserved.

访客数 : | 访问量 :