好未来

一面

  1. 自我介绍

  2. 最近做到项目 没细聊

  3. redis 常用结构

  4. redis 宕机恢复 aop rdb

  5. 连接池 获取句柄时并发控制

  6. mysql 引擎 区别

  7. 索引结构 b树 b+树 二叉树

  8. 算法 求数组交集 复杂度

  9. 算法 链表 快慢指针

  10. http code 码

  11. 常用orm框架

  12. tcp udp

  13. 日志存储 elk

  14. 接口稳定性监控

  15. sync map

  16. GMP

  17. 垃圾回收

  18. 你有什么想问的 问了下对面部门

  19. 期望薪资

二面

  1. 自我介绍
  2. 项目介绍
  3. redis 相关
    • 分布式锁
    • 分布式可用性如何保证
  4. mysql
    • 引擎
    • b+树
    • 索引左前缀原则 原理
  5. grpc 相比http优越性 grpc-gateway
  6. gin 路由 中间件
  7. 链表交叉点
  8. 文本单词数量统计 最多的前几个
  9. channel
  10. GMP

百度

一面

  1. 自我介绍

  2. 项目介绍

    • 大秒 channel 使用
    • 秒杀 异步缓存
    • 长链接 epoll
  3. 三数求和

二面

  1. 自我介绍

  2. 项目介绍 中间穿插一些go基础知识

    • token 加签
    • channel 使用场景
    • GMP 和线程相比为什么更轻量
    • map 如何有序
    • 切片
  3. redis

    • sortset 跳表为啥不用b+树
  4. mysql

    • b树b+树
    • 原子性如何保证的
    • 事务隔离级别 原子性如何保证 隔离性如何保证
    • 索引 触发条件
    • explain 获取索引触发情况
    • 慢查询优化
  5. 设计题 获取朋友圈

  6. 查询旋转数组

  7. 有什么想问的

  8. 你对我们这个部门有什么理解

三面

  • 聊项目
  • 项目中遇到的问题怎么解决
  • 和产品遇到分歧怎么办
  • 个人发展

滴滴

  1. go
    • go 调度 goroutine是被阻塞到重新运行过程
    • go map
    • 内存模型
    • channel
    • 垃圾回收
    • 内存逃逸 返回指针会不会发生内存逃逸
    • interface 底层结构
    • goroutine 泄露 如何排查 常见到goroutine泄露 如何避免
  2. mysql
    • 隔离级别 如何实现的
    • mvcc 原理
    • 索引 b+树 b+树如何分裂
    • 聚集索引 非聚集索引
    • 索引创建原则
    • 联合索引触发原则
    • 分库分表原则
  3. redis
    • 哨兵 主从
    • 持久化
    • 支持数据类型
    • 字符串 sds 实现原理 如何扩容
    • zsed底层数据结构 为什么
    • 通过aop rdb 恢复过程, 会不会阻塞主线程
  4. 聊项目
  5. 你有什么想问了

字节

  1. 自我介绍
  2. 项目
  3. redis
    • 常用数据结构
    • 字符串实现 为什么
    • zset 底层实现 跳表 压缩列表 分别什么情况下采取什么结构 实际应用
    • 分布式锁 获取锁、删除锁的lua脚本 为什么不用 setnx setex
    • hashmap 扩容 写时复制 长期没被访问的key如何处理
  4. mysql
    • 执行一次查询经历了哪些部分
    • 优化器的做了什么
    • 如何选择较优索引
    • 单条sql查询时间过长 不涉及事务 如何排查
    • 分页查询第一页和最后一页性能有没有差异
    • b树 b+树 二叉树
  5. go
    • map 为何输出是乱序的
  6. 缓存穿透
  7. 缓存击穿
  8. http 502 504 499
  9. 接口响应时间过长 如何排查
  10. 下一个较大排列
  11. 概率题