学习

大规模运行 Redis 简介

Ajeet Raina
作者
Ajeet Raina, Redis 前开发人员增长经理
Elena Kolevska
作者
Elena Kolevska, EMEA 技术赋能经理
Kurt Moeller
作者
Kurt Moeller, Redis 美国技术赋能经理

欢迎#

世界上的数据正在以指数级增长。这种指数级增长意味着数据库系统必须扩展。本课程介绍了如何扩展 Redis,它是最受欢迎的数据库之一。

那么,如何扩展 Redis 呢?这个问题有两个普遍的答案,我们必须立即解决它们。这是因为扩展 Redis 最简单、最常见的方法是让其他人为您管理 Redis 部署。

"数据库即服务" 产品的便利性意味着您不必了解数据库如何扩展,这节省了大量时间和潜在的错误尝试。

我们在 Redis 提供 Redis Cloud,这是一种高度可用的基于云的 Redis 服务,提供许多其他地方找不到的功能,例如活动 - 活动、地理分布。

Redis Cloud 也非常易于使用,并且有一个免费层,因此您可以快速上手。所以,这就是第一个答案。如今,要运行 Redis,您可能只需要使用完全托管的产品,例如 Redis Cloud。但并非所有人都能或愿意使用云托管数据库。

有很多原因导致这种情况。例如,您可能是一家拥有自己的数据中心和专用运营团队的大型企业。或者,您可能是一个关键任务应用程序,其 SLA 非常严格,您需要能够深入挖掘任何潜在的性能问题。这通常会排除基于云的部署,因为云隐藏了您正在使用的硬件和网络。在这种情况下,您将在自己的环境中部署 Redis。为此,您需要了解 Redis 的扩展方式。

学习这些内容不仅有用,而且非常有趣。分片、复制、高可用性和灾难恢复都是每个人都可以在正确解释的情况下理解的重要概念。这些概念并不复杂。它们不比基本的中学数学更难理解,了解它们会让您成为更好的开发者。在本课程中,我们将仔细研究开源 Redis 的扩展方式。您将通过实践学习,因为我们通过实践实验室展示了许多想法。

这些想法无论您是在自己环境中部署开源 Redis 还是管理 Redis Enterprise 集群都适用 - 如果您最终超出了开源 Redis 的能力,那么您最终会想要达到这种程度。以下是一些在学习本课程期间需要考虑的重要主题。但让我们首先学习如何走路,然后再跑步。

我们真诚地希望您喜欢学习有关扩展 Redis 的知识,并且一如既往,我很乐意提供帮助。

课程概述#

本课程分为几个单元,涵盖围绕扩展 Redis 进行生产部署的主题。

扩展不仅仅意味着性能。我们试图确定一些关键主题,这些主题将帮助您拥有高性能、稳定和安全的 Redis 部署。本课程分为以下单元

  • 与 Redis 交谈:Redis 的连接管理和调整。
  • 持久性/耐用性:将 Redis 数据持久化到磁盘的选项。
  • 高可用性:如何确保 Redis 和您的数据始终存在。
  • 可扩展性:扩展 Redis 以实现更高的吞吐量和容量。
  • 可观察性:对 Redis 部署的可见性(指标等)。

我们的目标是为您提供运行 Redis 所需的所有信息,无论哪种方式最适合您的组织。我们希望您喜欢这门课程,如果您在学习过程中有任何问题,请随时联系课程的 Discord 频道 。

先决条件#

  • 可以访问基于 Linux 的系统并熟悉它
  • 已安装 Redis 服务器和 redis-cli(示例和练习假定 redis-server 位于 $PATH 中)已安装 docker 和 docker-compose
  • Git 客户端和访问 Github 中克隆仓库的权限。一些练习将来自以下仓库: https://github.com/redislabs-training/ru301

注意

此仓库包含 Redis 在各种扩展配置中运行的示例演示,并且与本课程中的所有练习没有直接关联。有关使用情况,请参阅特定练习说明。

假设#

  • 熟悉 Linux Bash Shell 练习
  • Redis 中的传统术语使用“主”和“从”,但在本课程中,我们将使用“主”和“副本”。您仍然会在许多命令、配置和字段名称中看到传统术语。
  • 我们将使用 $ 表示命令行提示符,并使用 > 表示 redis-cli 提示符