蘑菇街 后台开发面经分享(社招)
Nginx 相关
1.nginx 有哪些模块?你比较熟悉哪个?
2.proxy_cache 你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?
简历里有写nginx,结果问得几个问题我都没答好,面试官就没再多问了,囧~
数据库相关
1.mysql 索引是怎么实现的?b+树有哪些特点?真实的数据存在哪里?
2.哪些情况下建索引?解释下最左匹配原则?
现在一个表有三列a b c,组合索引(a,b,c)查询的时候 where a like ? and b=? and c=?能用到
这个组合索引吗?为什么?
3.explain 执行计划看过没有?其中 type 字段都有哪些值?分别代表什么?
4.你有哪些 sql 调优经验?
1.redis 有哪几种数据结构?给你一个 key 怎么知道是用的哪种结构?
2.怎么查看所有的 key?redis 怎么切换库?怎么清数据?
3.描述下 redis 淘汰策略?如果没有数据可以淘汰活着没有配置淘汰策略读请求可以正常执
行吗?
4.你们项目里 redis 是单节点的吗?如果多节点怎么同步?
5.项目里用 redis 存哪些数据?为什么用 redis?和 jetty 本地缓存有什么区别?
1.怎么查看某个进程中的线程?
2.怎么批量替换一个文件夹下所有文件中的一个字符?(sed 命令)
3.有没有用过 jps jmap jstack jstat 命令,分别说下有哪些常用参数,知道多少就说多少。
我这里结合自己用jmap jstack 定位到线上问题的经验说的,答完后感觉面试官挺满意的,
所以说实践很重要啊~
1.设计一个系统,每天有 100 亿条数据,需要在后台做实时展示和查找。
我当时回答的大体思路是nginx 负载均衡,消息队列存储,多线程读取,批量插入,数据库
分库分表。
面试官根据我的回答又衍生出了很多问题,如消息队列存满了怎么办?(也就是消费跟不上
生产)批量插入时某一条失败了有什么影响?怎么解决?分库分表应该怎么分?怎么解决数
据迁移的问题?
2.用代码实现 cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。
3.手撕代码。牛客题霸上的原题,可以去看看:NC127 最长公共子串
4.如果现在有一台服务器突然变得很慢,怎么去定位问题?
#面经##社招##蘑菇街#