“选 Redis 还是 memcache”,面试官究竟想考察啥?

栏目: 数据库 · Memcache · 发布时间: 6年前

内容简介:一般,我不会预设任何问题,更不会问我擅长的领域。

昨天发布的《 缓存架构,到底设计些什么? 》一文,评论里问“究竟啥时候用 memcache ,啥时候用 redis ”的比较多。

评论的回复中,我提到,自己会在面试中问候选人这个问题。不少同学质疑, 问这个问题有什么意义,究竟想考察的是什么。 这个问题很严肃,且很重要,它脱离了 mc redis 本身,涉及到技术人的自我要求。

我在面试中,会如何向候选人提问?

一般,我不会预设任何问题,更不会问我擅长的领域。

我会先看简历上写了什么,比如“在项目中使用 redis 作为缓存存储”,我可能就会问,使用 redis 存储了什么, key 是什么, value 是什么,为什么选择 redis 而不是其他缓存。

所以, 是不是问 redis 并不是重点,重点是简历写了什么。 如果在简历上写,“在项目中使用 hash 作为内存存储结构”,我可能就会问,使用 hash 存储了什么, key 是什么, values 是什么,为什么选择 hash 而不是其他数据结构。

不少听到我这么问的候选人,先是一愣,然后思索,不同的候选人给出的答案完全不一样。

有一些候选人,会说:

  • “架构师设计的,我只是使用”

或者

  • “公司要求统一使用 redis 作为缓存存储”

又或者

  • “我比较熟悉 redis

这类回答,是比较减分的,作为技术人,自己千万不能把自己当做“码农”,而要把自己当做“设计师”,日常工作中不能只是为了“完成交代下来的任务”。

还有一些候选人,他会进一步解释,例如:

  • “因为 redis 支持集群高可用, redis 集群支持固化,所以选择了 redis

这类回答,说明候选人对 redis 进行过专门的学习,应该会非常好学。但是, ta 们未必经得起后续的系列问题:

“既然缓存的是用户信息,需要高可用么?”

回复:貌似不需要。

“既然缓存的是订单信息,需要固化么?”

回复:貌似不需要。

“那为什么还要选型 redis 呢?

回复:额...

能看到,这里, redis 的一些特性,不能充分的作为,选型 redis的理由。

任何脱离业务的架构设计,方案设计,技术选型都是耍流氓。

这不是一句空话。

做技术方案,技术选型的时候,一定是针对业务需求来折衷的。

假如存储的是用户信息, key uid value User 实体,当缓存挂了的时候,如果不会因为流量压到数据库而导致雪崩,此时缓存未必需要 redis 的集群功能。

假如存储的是订单信息, key oid value Order 实体,只作为缓存使用,允许 cache miss 读取数据库,此时未必需要 redis 的固化功能。

选择,因为在某个场景下,ta适合。

其实,我 并没有对自己的提问,预设任何答案 ,只要候选人的思路是清晰的,逻辑是自洽的,即使给出的未必是最优的方案,也是能让人眼前一亮。

我们,因为项目的压力,历史的包袱,做出妥协性设计方案的次数还少么? 技术人,清楚用什么,清楚怎么用还不够,更重要的是明白为什么。

技术人,需要一些情怀,多问自己一句为什么,对自己有好处。

你,真的理解面试官问题的用意了么?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ANTLR 4权威指南

ANTLR 4权威指南

Terence Parr / 张博 / 机械工业出版社 / 2017-5-1 / 69元

ANTLR是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。它被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。Twitter搜索使用ANTLR进行语法分析,每天处理超过20亿次查询;Hadoop生态系统中的Hive、Pig、数据仓库和分析系统所使用的语言都用到了ANTLR;Lex Machina将ANTLR用于分析法律文本;Oracle公司在S......一起来看看 《ANTLR 4权威指南》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具