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