好未来
一面
-
自我介绍
-
最近做到项目 没细聊
-
redis 常用结构
-
redis 宕机恢复 aop rdb
-
连接池 获取句柄时并发控制
-
mysql 引擎 区别
-
索引结构 b树 b+树 二叉树
-
算法 求数组交集 复杂度
-
算法 链表 快慢指针
-
http code 码
-
常用orm框架
-
tcp udp
-
日志存储 elk
-
接口稳定性监控
-
sync map
-
GMP
-
垃圾回收
-
你有什么想问的 问了下对面部门
-
期望薪资
二面
- 自我介绍
- 项目介绍
- redis 相关
- 分布式锁
- 分布式可用性如何保证
- mysql
- 引擎
- b+树
- 索引左前缀原则 原理
- grpc 相比http优越性 grpc-gateway
- gin 路由 中间件
- 链表交叉点
- 文本单词数量统计 最多的前几个
- channel
- GMP
百度
一面
-
自我介绍
-
项目介绍
- 大秒 channel 使用
- 秒杀 异步缓存
- 长链接 epoll
-
三数求和
二面
-
自我介绍
-
项目介绍 中间穿插一些go基础知识
- token 加签
- channel 使用场景
- GMP 和线程相比为什么更轻量
- map 如何有序
- 切片
-
redis
- sortset 跳表为啥不用b+树
-
mysql
- b树b+树
- 原子性如何保证的
- 事务隔离级别 原子性如何保证 隔离性如何保证
- 索引 触发条件
- explain 获取索引触发情况
- 慢查询优化
-
设计题 获取朋友圈
-
查询旋转数组
-
有什么想问的
-
你对我们这个部门有什么理解
三面
- 聊项目
- 项目中遇到的问题怎么解决
- 和产品遇到分歧怎么办
- 个人发展
滴滴
- go
- go 调度 goroutine是被阻塞到重新运行过程
- go map
- 内存模型
- channel
- 垃圾回收
- 内存逃逸 返回指针会不会发生内存逃逸
- interface 底层结构
- goroutine 泄露 如何排查 常见到goroutine泄露 如何避免
- mysql
- 隔离级别 如何实现的
- mvcc 原理
- 索引 b+树 b+树如何分裂
- 聚集索引 非聚集索引
- 索引创建原则
- 联合索引触发原则
- 分库分表原则
- redis
- 哨兵 主从
- 持久化
- 支持数据类型
- 字符串 sds 实现原理 如何扩容
- zsed底层数据结构 为什么
- 通过aop rdb 恢复过程, 会不会阻塞主线程
- 聊项目
- 你有什么想问了
字节
- 自我介绍
- 项目
- redis
- 常用数据结构
- 字符串实现 为什么
- zset 底层实现 跳表 压缩列表 分别什么情况下采取什么结构 实际应用
- 分布式锁 获取锁、删除锁的lua脚本 为什么不用 setnx setex
- hashmap 扩容 写时复制 长期没被访问的key如何处理
- mysql
- 执行一次查询经历了哪些部分
- 优化器的做了什么
- 如何选择较优索引
- 单条sql查询时间过长 不涉及事务 如何排查
- 分页查询第一页和最后一页性能有没有差异
- b树 b+树 二叉树
- go
- map 为何输出是乱序的
- 缓存穿透
- 缓存击穿
- http 502 504 499
- 接口响应时间过长 如何排查
- 下一个较大排列
- 概率题