dot Redis 8 来了——而且它是开源的

了解更多

求职者应准备好的 7 个 Redis 面试问题

您申请的工作写着:“要求有 Redis 经验。”您准备好回答招聘经理可能会问的问题了吗?以下是面试准备方法。

哦,工作面试。它们是您获得稳定薪水与您之间的必要之恶——就像甘道夫站在炎魔和魔戒远征队之间一样。您需要表现得像霍比特人一样足智多谋。像矮人一样坚定。像精灵一样敏捷。您绝对不能回答“您十年后想在哪里?”这个问题时说:“与精灵们在不死之地悠闲度日。”

您应该为面试做好准备,让自己看起来最适合加入 [插入公司名称] 的远征队。我们想出了七个问题及其答案,以帮助您说服公司的甘道夫让您说 Redis...并进入

您有哪些数据库经验?

对于大多数技术工作,展示特定工具或产品功能(例如数据缓存)的多年经验并不重要。真正重要的是您能展现多面性。

大多数技术招聘经理都知道工具和语言是变化的;他们想看到您从每一次经历中学到了东西。如果您使用过多种数据库,这表明您拥有丰富的经验,这也是面试官所寻找的。

因此,即使您在申请要求 Redis 专业知识的工作时并不了解 Redis,如果您能证明自己经常适应新的数据库或开发环境,您也可能符合条件。

潜在答案:一位高级软件工程师举例说明了她将如何回答面试官关于数据库经验的问题:“我一开始使用 MongoDB,但后来转向了MySQL,”Louise R. Howard 说。“MongoDB 的数据类型较弱,这对于数据库的未来兼容性很好,但处理速度较慢。现在我更喜欢 MySQL,因为它可以减少我的记录处理时间...在像 Facebook 这样处理数百万笔事务的情况下,这些毫秒累积起来就非常可观了。”

魔戒持有者的回答:“我口袋里有什么?字符串!……或者对象。”

如果您以前从未使用过 Redis,您会如何开始?

如果您精通 Redis 或能熟练交流,您可以直接利用 Redis API 并执行命令。以前从未接触过 Redis,甚至从未接触过缓存?没关系。即使佛罗多的魔多之旅也是从夏尔之外的第一步开始的。重要的是您如何抵达目的地。

潜在答案:“这个问题没有正确或错误的答案,”Redis 解决方案架构经理 Brad Barnes 说。

Barnes 说,许多面试者不了解 Redis。“他们可能执行过或没有执行过特定的命令,或者找出他们需要运行的命令。但他们确实了解一种语言或框架,比如SpringNode.jsPython 或 .Net.

Barnes 说,这很有用。“当你采用框架时,有时会有一些快捷方式,比如只通过配置的方式,允许你使用通用模式并达到最终结果,而无需对你正在使用的系统了解得太深。”

那么,当面试官期待地看着你时,你会说什么?指出你确实拥有的相关背景和专业知识——例如 Spring 或其他NoSQL 数据库。解释你会从这些知识开始,并在此基础上建立你的 Redis 专业知识。也许可以借助 Coursera 或Redis 大学的帮助。

魔戒持有者的回答:“虽然我不懂 Redis,但 Node.js 带我去了那里又回来了。”

您最常用的 Redis 命令是什么?

技术博客TechRT 的联合创始人 Rajesh Namase 向求职者提出了上述问题。“这对我来说是一种方式,可以识别申请者主要使用 Redis 处理哪些特定任务,”他解释道。您的回答可以让面试官知道您是否有能力解决缓存雪崩或攀登迷雾山脉。

潜在答案:虽然 info 命令和 string 命令非常有用,但 Howard 会告诉面试官,她经常使用“生存时间 (Time to Live)”,这允许 Redis 客户端检查给定键在数据集中将保留多少秒。

Howard 根据用例为她的 Redis 对象设置不同的生存时间。例如,她将一些对象的生存时间设置为 48 小时,这样如果用户快速返回该页面,信息就会存在,否则就会过期。在其他情况下,她根本不设置生存时间:“如果我想保存服务器将使用的配置信息,我将其保存在 Redis 缓存中,并且仅在我想要更新配置时才更新。”

Howard 说,多亏了生存时间,“您无需清理磁盘空间。Redis 会自动为您清除这些对象。”

重点不在于解释任何特定命令(例如生存时间)的优点。而是要向面试官证明您了解 Redis 的特性以及何时使用它们。此外,您选择的命令表明了您最喜欢做的工作类型。

魔戒持有者的回答:“我是刚铎国王,我命令你,死亡军队,为我而战。现在的生存时间到了。”

您能告诉我 Redis 的一些应用吗?

面试官可能会问这个 Redis 面试问题,以了解您的知识是窄而深还是浅而广。也许您在一个知识领域或垂直行业对 Redis 有很多经验,但在另一个领域却一无所知。招聘经理想了解您的知识范围。

潜在答案:软件开发者Morshed Alam 说:“Redis 可以用来替代数据库,以提高缓存或存储瞬态数据的性能。此外,它还可以用于会话管理或跟踪活跃用户。” 会话管理跟踪用户在网站上的活动,对于用户参与度非常重要;问问任何一个网站曾提供过真正好推荐的人就知道了。

Alam 说,“Redis 还可以用于实时分析或为聊天应用程序提供支持。” 实时分析对于金融数据可能至关重要,但对于任何类型的交易都很重要。毕竟,您不希望 Amazon Prime 忘记您最近观看了《指环王》。

魔戒持有者的回答:“我用 Redis 跟踪会话状态。他们叫我游侠可不是白叫的。”

为什么您会选择 Redis 而不是 Memcached?

Redis 是一个著名的实时数据库,以其缓存能力而闻名,就像《指环王》中的魔戒一样,不止一枚。(如果我们要谈论只能有一个的系统,我们就会提到《高地人》。)

面试官可能会问您,例如关于缓存系统 Memcached 的问题。让他们知道您确切了解 Redis 与竞争对手相比如何,以及您为什么选择它而不是其他系统(而不是仅仅因为“贵公司使用它,而我想得到这份工作”)会让他们感到安心。您可以证明您简历上的“了解 Redis”这一条目是名副其实的。

潜在答案:将这个问题视为您大学考试中常做的“比较与对比”题。

例如,您可以这样回答:一个区别在于更新速度。例如,Memcached 在过去几年中基本保持不变。相比之下,Redis 增加了新功能,例如流 (Streams)

Howard 对于使用 Redis 的特定公司还有另一个答案:“我会选择 Redis 而不是 Memcached,因为 Redis 有更多的文档。”

魔戒持有者的回答:“Redis 是统治所有缓存的那一个。”

假设您在使用 Redis 时遇到了一个具有挑战性的场景。您会去哪里寻求帮助?

程序员对他们的工作了如指掌,就像梅利和皮平知道吃第二顿早餐的时间到了一样。但即使是您,也并非对 Redis 一无所知。那么,当您遇到一个让您困惑不解的问题时,您会如何处理呢?重要的是您知道在哪里能找到好的信息。

您如何回答这个问题显示了您的足智多谋以及解决问题的能力。

潜在答案:除了Redis.comRedis.io开发者中心LaunchpadDev.to,Barnes 说,引用StackOverflowHackerNews 也是个好主意。他还提醒说,“您可能需要查阅四篇不同的文章,因为它们没有完全与您相同的问题。您可能需要在它们之间进行推断。”

考虑将您的贡献记录在公共平台上。这可以在面试中为您带来分量和可信度,也表明您乐于助人。Barnes 说,“在 StackOverflow 上回答过问题会有所帮助,拥有一个详细阐述示例的 GitHub 仓库肯定也会有所帮助。” 任何人都可以搜索 StackOverflow,但只有被选中的少数人的答案才能被投到顶部。

魔戒持有者的回答:“保守秘密。保护好它。等等……不要保守秘密。”

Redis 有哪些需要注意的陷阱?

Redis 是一个快速、稳定的缓存系统,但没有任何技术能够完美适用于所有情况,就像一枚赋予佛罗多隐形能力的戒指最终却将他暴露给索伦一样。

招聘经理希望招聘目光敏锐的技术专家。当你对一个产品很了解时,你就知道它的不足之处——以及如何规避它们。更好的是,经验丰富的开发者可以识别潜在的技术冲突和不匹配,指出从业人员的“最差实践”,并提出可行的方案。

专家不仅仅是知道做什么的人。他们是知道该做什么的人。

潜在答案:Alam 说,您必须注意缓存是否是最新的——然后他会在面试中公开解释他的理由。

工程师需要了解用户如何使用数据。以存储医疗记录为例。Alam 说,患者的血糖水平每天甚至每小时都在变化。“系统使用缓存来更快地获取数据,但如果我们没有告诉 Redis 保持缓存最新,那么它可能会向患者提供过时的数据。如果使用 Redis 的软件工程师不了解数据的使用方式,那么它可能会向消费者提供错误的信息,”Alam 说。

您在回答中可以提出的另一个问题是:大规模管理 Redis 可能是一项复杂的任务。考虑托管解决方案可能是个好主意。

魔戒持有者的回答:“皮平,所有人都知道我个子高。这在数据库里,数据库是唯一的真相来源。”

如果您正在寻找使用 Redis 的工作,或许补习一下相关知识是个不错的主意。

相关概念

对于更深入的 Redis 技术面试问题,请参考以下资源