腾讯后台开发实习 - 一面
0310
一、MySQL:
1.事务的隔离级别有哪些?有什么区别?读未提交、读已提交、可重复读、串行化
2.InnoDB 与 MyISAM 的区别?行级锁、事务、外键、索引实现、性能差别
3.MySQL 里有哪些锁?全局锁、表级锁、行级锁
4.MySQL 加锁语句是什么?SELECT ... FOR SHARE/UPDATE;
5.CHAR 和 VARCHAR 有什么区别?CHAR 是固定长度的字符串类型,VARCHAR是可变长度的字符串类型
6.设计表结构时,一对一的关系怎么设计?两个表使用相同的主键,其中一个表的主键同时作为外键指向另一个表
7.一对多的关系怎么设计?在“多”的一方(子表)创建字段,指向“一”的一方(父表)的主键
8.多对多的关系怎么设计?建立中间表,创建两个字段分别指向两张表的主键
二、Redis:
1.Redis 里常用的数据结构有哪些?主要应用于哪些场景?String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)
2.Redis 里这几种数据结构的底层实现?String:SDS(简单动态字符串)、List:LinkedList、Set:Dict、Hash:Dict、Zset:ZipList + Dict
3.4.5.Redis 缓存三兄弟?缓存穿透:布隆、缓存空值、非法限制;缓存击穿:互斥锁、热点数据不过期;缓存雪崩:互斥锁、均匀设置过期时间、后台更新缓存
6.Redis 的持久化机制?RDB 快照、AOF 日志
7.Redis 的过期删除策略?惰性删除 + 定期删除
9.Redis 的缓存淘汰策略?LRU、LFU…
三、微服务
微服务中常用的限流方式以及实现有哪些?固定窗口计数器算法、滑动窗口计数器算法、漏桶算法、令牌桶算法
四、手撕
LRU缓存