面试题系列
算法
Mysql
- 聚簇索引和非聚簇索引
- 唯一索引和普通索引的区别
- 为啥用B+树?为啥不使用hash?为啥不使用跳表?
- select a,b,c from table where a=1 and b=2 如何建立索引
- MVCC实现机制
- 事务的隔离级别
- 数据库的存储引擎有哪些,区别是啥
- Sql性能优化方法
Redis
- Redis的数据结构
- Set的实现原理
- Redis集群
- Redis持久化机制
- Redis内存淘汰机制
- redis单线程是如何做到支持高并发的
- Redis中value过大会造成什么问题?为什么?
- 缓存穿透怎么处理
Go
- 切片内存布局
- Map的底层实现,如何保证O(1)时间复杂度
- channel的底层实现
- 有缓冲channel和无缓冲channel的区别
- 协程池设计
- 限qps设计
- 线程协程比较,两者在堆栈内存分配上的区别
- Go的垃圾回收机制
- Go的协程调度模型
MQ
- kafka的使用场景
- kafka如何保证消息不丢失
- kafka的过期策略
- Mq如何保证消费有且只有一次
- 消息队列保证消息有序
网络
- TCP几次握手、几次挥手
- 7层协议,4层协议
系统设计
- 分表策略,数据迁移方案,如何灰度
- 保护系统,限流,令牌桶
其它
- 介绍下NIO,操作系统底层是什么,详解select、poll、epoll区别
- 什么是bitmap