懂球帝-Go社招-8.1
- 自我介绍
- 项目
- 最大的QPS能有多少?
- 假设有一个服务需要比较高的QPS的,你该怎么设计这个从服务到返回的流程呢?假定一个查询的接口,比如说游戏的道具,你会怎么设计?(我说的加redis做缓存)
- redis这一块,假设道具的查询量在某一刻突然出现了大几千几万的激增,在之前并没有redis的缓存,为了避免穿透到数据库里面去(默认如果穿透到数据库,数据库是撑不住的),golang你怎么设计这个服务,避免穿透到数据库里面去的。我的需求是,我这个请求过来,是有真实数据存在的,而且每个请求都得拿到真实的数据结果(不能用布隆过滤器和限流)。提示:都落到数据库里面,数据库肯定扛不住,假设几千个QPS只需要一个QPS获取到数据,其他的请求只拿到这一个的结果返回数据就行。
- mysql
- 你的服务中mysql单表的数据量最大的大概有多少?有做分表吗
- mysql一张表达到什么样的一个节点或者量级,我们需要进行分表的操作
- 为什么mysql数据量大的时候查询性能会下降?最主要的原因是什么?(我回答的是索引效率会降低)
- 为什么数据量大索引效率会降低呢?
- mysql 2千万的时候进行分表,这么说到底是对还是不对,为什么到了2千万要进行分表
- redis
- 假设有10个g的内存,如果存满了的话,大概是一种什么的机制是管理内存的,如果没存满的时候,这个键过期的情况下他是怎么去进行淘汰的
- 如果10个g内存满了话,再存一个键的话能存上还是不能存上?默认的情况下
- 满的淘汰策略,过期的删除策略
- 惰性删除
- 定期删除
- 定期删除你说的不全面,随机找一部分键,如果过期的键达到一定比例了,他还会继续再去找一部分,如果没到那个比例他就会把这些键删除
- 事务
- mysql Innodb事务原理
- ACID
- mysql通过什么保证原子性的
- 你踢球看球吗,平时都有看球吧,每年都看吗