java 后端。一直在小公司转。最近面了几家大公司都挂了。
就拿 redis 来说吧。
问 redis 的持久化方式,这个我答 aof 和 rdb。再问 aof 和 rdb 的区别,这个答 aof 备份操作命令,rdb 备份具体数据。然后继续问 aof 文件太大会怎么样?我却不知道 aof 重写机制压缩文件。
问 redis 的主从?答读写分离,主机写,从机读。然后问主从同步,支支吾吾答了个 bgsave 命令,讲不清楚。
问 redis 的回收策略。答了 lru 和 ttl。然后让手写 lru 算法,写不出来。。
问 redis 怎么做分布式锁,答 setnx 命令。再问怎么释放锁,答 del key。然后问,如果获取锁的模块宕机了怎么办?答设置缓存失效时间。然后继续深问,分布式锁 redis 做了主从,如果设置锁之后,主机在传输到从机的时候挂掉了,从机还没有加锁信息,如何处理?这个我就蒙了。
面试官说我只会用,不懂底层原理。
一个知识点,不断地往深问,就会蒙。
现在面试大公司,面得怀疑人生,想进大公司实在是太难了。。
1
402124773 2019-01-21 11:11:56 +08:00 15
你多去几次,发现他们每次问的问题都是那些。然后针对那些问题,深入地查看源码,了解底层。然后。。。
|
2
zzzhbooo 2019-01-21 11:11:57 +08:00 3
欲戴王冠,必承其重
|
3
Itoktsnhc 2019-01-21 11:12:33 +08:00 84
然后进去 CRUD 😂
|
4
RoyL 2019-01-21 11:12:49 +08:00 20
...然后进去了发现,一个也用不上
|
5
yu5121199 2019-01-21 11:12:58 +08:00
1 楼正解,多去面几次就好了。
|
7
jinhan13789991 2019-01-21 11:15:03 +08:00 2
招一个螺丝钉,却问你发动机如何制造。
不过这也是人家筛选人才的手段啊 |
8
skypyb 2019-01-21 11:15:50 +08:00
所以这个锁到底怎么处理啊,我也好奇
|
9
SyncWorld 2019-01-21 11:16:09 +08:00 6
面试造核弹,上班拧螺丝~~~
|
10
liprais 2019-01-21 11:16:38 +08:00 4
"问 redis 怎么做分布式锁,答 setnx 命令。"
这个是有问题的,setnx & expire 这个操作并不是原子的 另外还有一些关于 redis 的分布式锁是不是安全的讨论,这个 blog 讲的不错 http://zhangtielei.com/posts/blog-redlock-reasoning.html |
12
guanhui07 2019-01-21 11:18:33 +08:00
多面面才知道自己不足,然后补,面试也是收获的一种
|
13
nekoleamo 2019-01-21 11:18:41 +08:00
我之前去海康威视面前端,问的问题真的是大而全,上来就让我说一下 vue,然后我说到哪一点,就会盯着这个点挖下去,被问倒了😌
|
14
suhongbo 2019-01-21 11:18:51 +08:00
你只是没有找个合适你的公司而已,不要急,慢慢来。面试也是一种经历
|
15
df4VW 2019-01-21 11:18:57 +08:00
不是啊,这公司只问 redis 么。。
|
16
eamon666 2019-01-21 11:19:59 +08:00
你是在简历里过度强调了 redis 的技能吗?导致面试官一直揪着这些不放?
现在大公司 模块都是分的很清楚 普通的业务 rd 是基本碰不到 redis 底层原理的。。。 |
17
liprais 2019-01-21 11:20:03 +08:00
另外你面试 java 职位让你当场实现一个分布式锁太欺负人了, 面试官自己都不一定能想出来一个正确的方案
|
18
a226679594 2019-01-21 11:20:56 +08:00
面试造核弹,上班拧螺丝~~~
|
19
zhengwenk 2019-01-21 11:27:14 +08:00 2
@liprais 很多时候面试官自己不懂,所以希望在面试的时候问问看有没有人能教他。当然大牛面试官例外,但是大牛也比较少
|
21
inwl 2019-01-21 11:29:36 +08:00
以前每次去面试自信都被击碎一地,因为我也不知道底层,只会用。
|
22
maichael 2019-01-21 11:31:12 +08:00
我觉得这样问的问题不大,一般是你简历上写什么他就抓住一点问什么。然后再根据你回答的深入问下去,有些问题回答不出来不会减分,但是如果你回答出来就会加分,这对于筛选很有帮助。
|
23
maemual 2019-01-21 11:31:19 +08:00
只不过想要摸清你的深度而已
|
24
msg7086 2019-01-21 11:33:01 +08:00
面造入拧是常态。不过盯着 Redis 问有点过分了。又不是招你去开发 Redis 的。
|
25
Jonssen 2019-01-21 11:35:19 +08:00 via Android 7
给你们支个招,在发现面试官苗头不对的时候,你先问一下面试官该职位的薪资多少?如果是 50K 的你直接走人,如果是 10K 的估计他也明白你的意思了。
|
26
deepreader 2019-01-21 11:36:03 +08:00
@Itoktsnhc 说出了真相。
|
27
javaWeber OP @df4VW 不是啊,这公司只问 redis 么。。
======================================== 不止啊。java 基础,集合源码,线程池源码,多线程并发源码问得最多。有些会问 jvm。 数据库基本必问索引和锁,还有 sql 调优。。以前我都不知道做后端对数据库要求这么高的。 框架就 ssm,springBoot 这些。 分布式的话就问缓存,消息队列,服务协调这些。 有的还会问几个 Linux 命令。 |
28
pxlxh 2019-01-21 11:39:09 +08:00
你不是应该感谢别人。
|
29
sarlanori 2019-01-21 11:40:29 +08:00 4
这个只能说明供大于求了,一堆人去面相同的岗位,都满足该岗位的最低要求,那当然要在这里面选能力最强的了
|
30
zhangdawei 2019-01-21 11:43:27 +08:00 via iPhone
很好啊,这个正好是补足不全的机会
|
31
dengtongcai 2019-01-21 11:46:44 +08:00
l 楼主可以尝试总结一下面试经验,有好处的哦,我们也可以参考下
|
32
RockShake 2019-01-21 11:47:50 +08:00
然后发现问的问题一个都用不上
|
34
waytodelay 2019-01-21 11:52:23 +08:00 via Android
楼主几年经验?面的哪家?想参考参考
|
35
fcoolish 2019-01-21 11:54:19 +08:00
问的这么详细的吗,
|
36
zjl03505 2019-01-21 11:55:36 +08:00
没人说 面试是一定要全答上。摸摸你的深浅,了解了解你应对问题的策略而已
|
37
loveCoding 2019-01-21 11:56:33 +08:00
你反问他 , 他也会跪的
|
38
nicevar 2019-01-21 12:03:52 +08:00 1
招人就是这样,肯定择优录取,面试的问题不一定要求你全部回答上,那些调侃"面试造核弹,上班拧螺丝"的人等招进来给你打下手不行了你肯定会喷这人谁招进来的,这也不会那也不会
|
39
mortonnex 2019-01-21 12:05:00 +08:00
redlock 没听过嘛...
|
40
nl101531 2019-01-21 12:07:01 +08:00 via Android 1
redis 设计与实现 可以看看这本书
|
41
javaWeber OP @mortonnex redlock 没听过嘛...
========================================================= 听过。有个框架 redisson 里面有 redLock 机制。我只知道 lock(),unLock()。。不知道原理。 |
42
he583899772 2019-01-21 12:21:52 +08:00
反复准备,坚持一两个月肯定没问题的
|
43
enenaaa 2019-01-21 12:22:49 +08:00
面试就这样啊。 面试官就是把尺子,量出你的深浅。当然人家也不一定全懂,但是就想知道你懂不懂。
|
45
onlin 2019-01-21 12:34:18 +08:00 via Android
攒经验,为什么会支支吾吾的,不会就是不会,会就是会,我面试时候问了我快两个小时,,,然后跟你讲,我走的时候不报任何希望,过了没几天就给了我二面~
|
46
tourist2018 2019-01-21 12:48:00 +08:00
简历里面绝对写了 redis。。。
|
48
mogami95 2019-01-21 12:59:47 +08:00
没问你工作方向上的顶会 paper 就算幸运啦~
|
49
hilbertz 2019-01-21 13:01:51 +08:00
因为其他大公司也是这么面试,人家一个小小面试官,当然不想担责任,就按规章走呗
|
50
quwabcxyz 2019-01-21 13:10:22 +08:00 via Android
不要问人生理想这些尴尬呃呃问题就好,一堆鸡汤
|
51
cncoffer 2019-01-21 13:12:41 +08:00
@nekoleamo 前年我也去海康面过, C 语言的嵌入式岗位, 感觉问题都很浅哎, 就是工资开的也很低而且 996, 然后我就没去, 2333
|
52
Paual 2019-01-21 13:24:04 +08:00
面试也是一次学习的机会吧,楼上说的 redis 设计与实现可以看一下,看过一遍,懵懵懂懂,感觉需要再仔细看一遍,换个思路想一下,遇到难的问题的时候都要从底层了解原理去学习,所以所有知识的学习都是由会用到了解然后到深入吧,分析然后类比总结,redis 用比较简单,用好又是一门学问了
|
53
Vegetable 2019-01-21 13:26:34 +08:00
这就是为什么说不是真精通就连了解都不要说...
|
54
jakson 2019-01-21 13:35:33 +08:00
确实,之前面过几个也是,一步一步的深入,而且有时候有的面试官问的问题很难理解。
知识点那么多,没个大半年准备怕是不行 |
55
Just1n 2019-01-21 13:40:47 +08:00
所有大公司都这么面嘛?
|
56
dezhou9 2019-01-21 13:45:19 +08:00 via Android
多看书就能秒杀了
|
57
pony279 2019-01-21 13:46:54 +08:00
不知道你具体是什么情况, 作为面试官, 主要考虑的应该是你个人技术和简历描述的匹配程度(是否真实靠谱, 很多公司鼓励内推, 也是基于这个考虑), 以及你有没有其他亮点
如果面试的时候过程中你只提到会用 redis, 那么并不能算作是亮点 你如果不擅长 redis, 那就把面试引导到你擅长的地方, 当学历,资历都没有优势的时候, 让对方知道你的长处, 才是上策 你可以回答, redis 我主要是会用, 并没有深入了解, 我平时研究 xxx 比较多 ... |
58
pony279 2019-01-21 13:51:34 +08:00
还有就是要体现出你工作或者研究过程中面临的挑战, 以及解决业务问题的办法, 比如前面提到的主从问题, 就是业务可能面临的挑战, 如果没接触过也很正常, 但是你可以找其他地方和他聊
|
59
ResidualWind 2019-01-21 13:52:32 +08:00
面试造核弹,上班拧螺丝~~~
|
60
ntop 2019-01-21 13:52:52 +08:00 4
老铁你这是不会面试呀,简历上写的东西一定要搞熟,面试不会只问问经验的没有区分度. 我以前面 Android 的时候就把会的东西从底层到源码全看一遍,来不及自己看的就到网上看看别人写的概要. 面 Java 的时候我就会把 JVM 内存管理\线程调度啥的都搞一遍,面 Go 的时候我还是照样把 GC 算法,内存申请等等看一遍,我用的任何算法我都会研究一遍,常用的算法比如你说的 LRU 必须手写,另外 Redis 源码不是很多的,一般公司都会期望你是读过源码的. 做到这些在经验层面几乎不会有问题,然后就是算法了,比较硬核和临场发挥的关系也很大自认一上白板就紧张...
|
61
CasualYours 2019-01-21 14:03:15 +08:00
这些都是常见的面试题,你要是用过 redis,这些也都是要清楚的。多看看面试攻略,提前作作准备。
|
62
20015jjw 2019-01-21 14:04:53 +08:00 via Android
这些题目有意义么...
|
63
GoodRainChen 2019-01-21 14:14:34 +08:00
我觉得很常见啊,不都是抓一个点问下去,看看你对原理的掌握。有些可能就是公司要自己造轮子的,或者公开的轮子有 bug,得去修复或者定位问题。
世界上哪有不出错的程序,假设一个可能损失几百万的 BUG,难道你判断“这是 Redis 的问题”,或者“ XX 轮子就是这么干的”,你以为就可以不用改了? 我面试小公司来的同事,就感觉这帮人喜欢不求甚解,问个东西,就只知道用,原理也不想,如何改进也不想,拧螺丝也有可能拧出问题啊,总不能就放着不管吧? |
64
cyhulk 2019-01-21 14:15:10 +08:00
这些东西都在 redis 官方文档上,也应该撸一遍的
|
65
NicholasYX 2019-01-21 14:18:41 +08:00
面试造火箭,入职拧螺丝
|
66
Asice 2019-01-21 14:21:15 +08:00
工资给够管他造核弹还是拧螺丝
|
67
BBCCBB 2019-01-21 14:22:52 +08:00
我也想知道主从同步不及时,挂掉的情况下分布式锁怎么处理, 除了 redblock 这个
|
68
hahasong 2019-01-21 14:24:18 +08:00
就是官方手册上的,没意义。能谷歌查到的常识文档,问来干嘛
|
69
puritania 2019-01-21 14:25:14 +08:00
分布式锁 redis 做了主从,如果设置锁之后,主机在传输到从机的时候挂掉了,从机还没有加锁信息,如何处理?
这个确实不知道怎么处理。。。 |
70
ala2008 2019-01-21 14:34:28 +08:00
看来我要好好准备了
|
71
sununiq 2019-01-21 14:37:02 +08:00 via Android
主从那个无解吧,redis 本身保证的是 ap,要求一致性只能上 zk
|
72
lalala121 2019-01-21 14:40:25 +08:00 1
我几年前去猫眼面试,一个年轻人面我,上来就问 redis,我感觉他是刚看完《 redis 设计与实现》,基本就是按照目录来问的,问了将近半个小时,然后让我回家等消息,只问 redis,我是 phper
|
73
skysword 2019-01-21 14:48:06 +08:00 via Android
很正常,无论什么领域,针对每一次回答,不断深入问下去,一般不超过六次就能把人问住,无论被问的人有多牛,屡试不爽,因为一般几次之后就会深入到非常理论的领域,绝大部分是未知的领域
|
74
arthas2234 2019-01-21 14:48:29 +08:00
写简历也是门学问啊,不要就写一份简历然后海投
一般都是先筛选公司,然后根据每个公司的招聘要求,写出不同的简历 约到面试以后针对性的复习,写太多了真的容易出错 个人精力真的很有限,你实际开发中使用到的技术那么多,不可能面面俱到的 |
75
tlriavsihd 2019-01-21 14:51:33 +08:00
猜测你面的头条吧…其余的面试题能分享一下吗…
|
76
sgissb1 2019-01-21 14:54:38 +08:00
别太当真,你拿出工程经验来,随便问他们两个有点价值的问题一样可以反杀。
|
77
ducklyl 2019-01-21 14:56:30 +08:00
面试造火箭,入职拧镙丝。现在不都这样吗?好像你知道这些高大上的东西,逼格就不够。
|
78
openbsd 2019-01-21 15:09:35 +08:00
这不是运维的活 ?
|
79
9684xtpa 2019-01-21 15:13:21 +08:00 2
@javaWeber #41 所以你应该把 redlock 的原理了解清楚,你就能完美回答分布式锁了,本身的 SETNX 需要基础 LUA 脚本实现原子性,但是如果涉及到集群的情况下,这种方式不是完美的,里面会有很多的问题,所以问及到 redis 集群情况下,分布式锁,就得谈到 redlock,俩者都了解清楚了,你就能回答清楚了
送你两篇文章 https://mp.weixin.qq.com/s/JTsJCDuasgIJ0j95K8Ay8w https://mp.weixin.qq.com/s/4CUe7OpM6y1kQRK8TOC_qQ |
80
geekyoung 2019-01-21 15:17:06 +08:00
就当多了一次学习和了解的机会了 加油楼主 别灰心!
|
82
lincanbin 2019-01-21 15:22:17 +08:00
进去后说不定会发现代码就是屎山。
|
83
9684xtpa 2019-01-21 15:22:39 +08:00
@RoyL #4 你错了,正常的业务开发可能会用不上,但是会的越多,处理复杂问题以及解决问题的能力越强,而不是一个很普通的会写一些简单代码的人能替代的,比如一些中间件的性能甚至 BUG,你让一个小白去解决,还是让一个了解其中原理的人去解决。另外很多东西现在网上都有相关的文章,甚至很多的技术书籍都有提到,这也是体现一个人学习能力的表现。
其实面试的时候,除了体现你的业务解决能力,很多时候是想看到你能给这个团队带来多少东西,是否可以独立负责技术项目,是否可以应对复杂需求,不是招个人进来都是写内部的管理后台的。 |
84
nieyujiang 2019-01-21 15:24:28 +08:00 via iPhone
面试造核弹,入职搞核弹发射按钮 手动狗头😂
|
85
tabris17 2019-01-21 15:30:49 +08:00
|
86
frantic 2019-01-21 15:31:49 +08:00
上次面试 以前在阿里 p10 的大佬最终面,问了我好多关于数据结构的问题,包括画出各个链表结构,我都不会,但聊的很开心,结果给了我一些职业上的建议,当晚就发 offer 了
|
87
passerbytiny 2019-01-21 15:55:00 +08:00
被抓壮丁去面试人几次后,算是有点面试官的经验。可以给楼主解答一下,不一定对。
技术把关的重点是这三个:实际工作经验年限或者简历可信度、擅长点、学习或总结能力。面试技巧是这样的:多问,问到底。回答了多少、回答对了多少,回答到什么层次,都不是重点,重点就是验出前面说的那三个。 你不表达“我不会”,那就会一直往底上问,这一点看不出来啥问题。“面试官说我只会用,不懂底层原理。”具体看面试官怎么说的。如果是这样——你会用,不过底层原理还不太懂,那么只是一个一般事实陈述,在最终评价中最多是不优秀,基本不影响过关。如果是这样——你这啥都回,就是底层原理一点都不懂,那么这是再变相得说你不懂装懂,基本属于婉拒了。是前者还是后者,需要楼主自己体会,光凭你现在的描述,猜不准。 |
88
shellbye 2019-01-21 15:55:48 +08:00
瑟瑟发抖
|
89
ldh756034624 2019-01-21 16:17:09 +08:00
然后进去 curd........
|
90
poplar50 2019-01-21 16:20:07 +08:00 via Android
今年秋招 手写了好几次 lru
|
93
lolizeppelin 2019-01-21 16:47:25 +08:00 1
分布式 一定有
1 仲裁能力 2 >=3 的参与仲裁成员 3 快速的同步 4 仲裁投票 5、6、7....等等等等 讲到底还是要懂 Paxos 那套原理 一 redis 搞分布式锁,意思意思就行了..... |
94
yuankui 2019-01-21 17:02:33 +08:00 5
我觉得现在的面试题,都问的是:茴香豆有几种写法,而没有人关心茴香豆做法。
道理说的一套一套的,实际干起来,就啥都不会 |
95
matrix1010 2019-01-21 17:09:49 +08:00 via Android
@poplar50 现在要求越来越高了, lru 在 leetcode 可是 hard, 不过要求 O(1)
|
96
loser 2019-01-21 17:10:22 +08:00
去年初创业失败重新出去找工作面试运维,结果问了很多我都答不上的问题,毕竟我也脱离运维有一两年,最后确实也没过,然后想了几天再次拉上朋友重新创业,这回不干技术干运营,目前公司已经实现持续盈利,有时候真的可能转个弯换条路也行。
|
97
ikaros 2019-01-21 17:27:53 +08:00
为啥揪着 redis 问,而且如果不是专职 redis 运维谁会把 redis 搞得那么熟啊
|
98
poplar50 2019-01-21 17:31:01 +08:00 via Android
|
99
poplar50 2019-01-21 17:32:13 +08:00 via Android
@matrix1010 头条尤其喜欢这个 还有滴滴也问到了
|
100
atonku 2019-01-21 17:34:22 +08:00
面试造火箭,入职拧螺丝
|