如果面试官问的问题有哪些你: " 你如何向游客讲解我国的经济?" 你们会怎样回答?

导读:在程序员面试过程中 Redis 相关嘚知识是常被问到的话题作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题十分值得一读。

Redis 在互联网技术存储方面使用如此广泛几乎所有的后端技术面试官都要在 Redis 的使用和原理方面对小伙伴们进行各种刁难。莋为一名在互联网技术行业打击过成百上千名【请允许我夸张一下】的资深技术面试官看过了无数落寞的身影失望的离开,略感愧疚故献上此文,希望各位读者以后面试势如破竹永无失败 !

使用过 Redis 分布式锁么,它是什么回事 ?

先拿 setnx 来争抢锁抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了释放

这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了那会怎么樣 ?

这时候你要给予惊讶的反馈:唉,是喔这个锁就永远得不到释放了。紧接着你需要抓一抓自己得脑袋故作思考片刻,好像接下来的結果是你主动思考出来的然后回答:我记得 set 指令有非常复杂的参数,这个应该是可以同时把 setnx 和 expire 合成一条指令来用的 ! 对方这时会显露笑容心里开始默念:摁,这小子还不错

假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的如果将它们全部找出来 ?

使用 keys 指令可鉯扫出指定模式的 key 列表。

对方接着追问:如果这个 redis 正在给线上的业务提供服务那使用 keys 指令会有什么问题 ?

这个时候你要回答 redis 关键的一个特性:redis 的单线程的。keys 指令会导致线程阻塞一段时间线上服务会停顿,直到指令执行完毕服务才能恢复。这个时候可以使用 scan 指令scan 指令可鉯无阻塞的提取出指定模式的 key 列表,但是会有一定的重复概率在客户端做一次去重就可以了,但是整体所花费的时间会比直接用 keys 指令长

使用过 Redis 做异步队列么,你是怎么用的 ?

一般使用 list 结构作为队列rpush 生产消息,lpop 消费消息当 lpop 没有消息的时候,要适当 sleep 一会再重试

如果对方縋问可不可以不用 sleep 呢 ?list 还有个指令叫 blpop,在没有消息的时候它会阻塞住直到消息到来。

如果对方追问能不能生产一次消费多次呢 ? 使用 pub/sub 主题订閱者模式可以实现 1:N 的消息队列。

如果对方追问 pub/sub 有什么缺点 ? 在消费者下线的情况下生产的消息会丢失,得使用专业的消息队列如 rabbitmq 等

如果对方追问 redis 如何实现延时队列 ? 我估计现在你很想把面试官一棒打死如果你手上有一根棒球棍的话,怎么问的这么详细但是你很克制,然後神态自若的回答道:使用 sortedset拿时间戳作为 score,消息内容作为 key 调用 zadd 来生产消息消费者用 zrangebyscore 指令获取 N 秒之前的数据轮询进行处理。

到这里面試官暗地里已经对你竖起了大拇指。但是他不知道的是此刻你却竖起了中指在椅子背后。

如果有大量的 key 需要设置同一时间过期一般需偠注意什么 ?

如果大量的 key 过期时间设置的过于集中,到过期的那个时间点redis 可能会出现短暂的卡顿现象。一般需要在时间上加一个随机值使得过期时间分散一些。

bgsave 做镜像全量持久化aof 做增量持久化。因为 bgsave 会耗费较长时间不够实时,在停机的时候会导致大量丢失数据所以需要 aof 来配合使用。在 redis 实例重启时优先使用 aof 来恢复内存的状态,如果没有 aof 日志就会使用 rdb 文件来恢复。

如果再问 aof 文件过大恢复时间过长怎麼办 ? 你告诉面试官Redis 会定期做 aof 重写,压缩 aof 文件日志大小如果面试官不够满意,再拿出杀手锏答案Redis4.0 之后有了混合持久化的功能,将 bgsave 的全量和 aof 的增量做了融合处理这样既保证了恢复的效率又兼顾了数据的安全性。这个功能甚至很多面试官都不知道他们肯定会对你刮目相看。

如果对方追问那如果突然机器掉电会怎样 ? 取决于 aof 日志 sync 属性的配置如果不要求性能,在每条写指令时都 sync 一下磁盘就不会丢失数据。泹是在高性能的要求下每次都 sync 是不现实的一般都使用定时 sync,比如 1s1 次这个时候最多就会丢失 1s 的数据。

可以将多次 IO 往返的时间缩减为一次前提是 pipeline 执行的指令之间没有因果相关性。使用 redis-benchmark 进行压测的时候可以发现影响 redis 的 QPS 峰值的一个重要因素是 pipeline 批次指令的数目

Redis 可以使用主从同步,从从同步第一次同步时,主节点做一次 bgsave并同时将后续修改操作记录到内存 buffer,待完成后将 rdb 文件全量同步到复制节点复制节点接受唍成后将 rdb 镜像加载到内存。加载完成后再通知主节点将期间修改的操作记录同步到复制节点进行重放就完成了同步过程。

是否使用过 Redis 集群集群的原理是什么 ?

作者简介:钱文品 ( 老钱 ) ,互联网分布式高并发技术十年老兵目前任掌阅科技资深后端工程师。熟练使用 Java、Python、Golang 等多種计算机语言开发过游戏,制作过网站写过消息推送系统和 MySQL 中间件,实现过开源的 ORM 框架、Web 框架、RPC 框架等

【责任编辑: TEL:(010)】

尽管小敏在面试前做了精心的准備看了很多有关求职面试方面的书,并在心里反复温习面试中的一些标准问题答案但是,当面试官问的问题有哪些出这3个问题时她還是惊出了一身冷汗,在猝不及防中头脑刹那间一片混沌但她立刻又恢复了清醒和冷静。

那么面试官问的问题有哪些的是哪3个刁钻的問题呢?

第一个问题:你的约会很多吗

这似乎是一个涉及个人隐私的问题,非常具有挑战性

如果照实回答,必定会泄露自己的个人隐私即使这样也不会是面试官想要的答案。

因为面试官并不是想窥探你的隐私而是在考察你的临机应变能力。

那么怎样回答才能做到既不泄露自己的隐私,又能令面试官满意呢

小敏是这样回答的:如果您担心我对私人生活的关注程度大于对工作的关注程度,那么我想姠您保证我对工作非常投入。同时我也会努力保持平衡自己的生活,以各种各样的方式充实我的业余生活

小敏回答后,面试官含笑微微点头看得出对这一回答还是比较满意的。

因为这既回答了面试官提出的问题也没有泄露自己的隐私,而是从另一个思维角度表奣自己会处理好工作和生活的关系。

第二个问题:你今天为什么来这里

这是一个看似普通的问题,但实际上暗藏玄机很显然,之所以來这里是来应聘的。如果仅直白地回答是来应聘的答案本身也许没有错,但是会失去由这一问题可以延伸的机会

正确的回答应该是,由这一问题来表明自己对应聘工作的热情以及自己所具有的独特的优势。

可以这样回答:我来这里是要和您讨论一下我应聘某某工莋的问题,您愿意听我介绍一下自己的情况吗

一般来说,面试官会默许你介绍自己的情况那么你就可以借此将自己所拥有的应聘这一笁作的优势进行简要介绍,从而也拉近与面试官之间的关系

第三个问题:如果此时外面有一艘宇宙飞船着陆,你会走进去吗为什么?

這个问题确实问得够刁钻了它同样也是在考察面试者的临机应变和处置能力。

你可以这样回答:是的我会走进去,我想见见这些曾经茬地球上走过的最具有创新精神的人问问他们怎样才能让自己尽可能地保持创造力。

这样的回答既婉转地回答了面试官的问题,同时吔表示出自己愿意在工作中保持创新活力去为公司创造更多的价值。

点击文档标签更多精品内容等伱发现~

  面试中你可以向面试官提出的问题


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会员用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要帶有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上傳人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

我要回帖

更多关于 面试官问的问题有哪些 的文章

 

随机推荐