学习

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 Enterprise 集群。这些是您在本课程中需要考虑的一些重要主题。但我们还是先学会走路再学跑吧。

我们衷心希望您喜欢与我们一起学习 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 中的旧术语使用 'master' 和 'slave',但在本课程中我们将使用 'primary' 和 'replica'。您仍然会在许多命令、配置和字段名中看到旧术语。
  • 我们将使用 $ 表示命令行提示符,使用 > 表示 redis-cli 提示符