Google Cloud 上的 Redis 的部署方案


本文档简要介绍如何部署 Redis 并迁移到 Google Cloud,包括根据您的要求在不同服务上部署 Redis 的方案和利弊权衡。

Redis 是内存中数据结构存储区,可用作数据库、缓存、消息代理等。Google Cloud 完全支持 Redis,包括以下各项:

在 Google Cloud 上部署 Redis 的最佳方法取决于您的特定需求和要求。本指南中提供的建议基于一般最佳做法和注意事项。请务必全面分析 Redis 工作负载并查阅官方文档,或针对特定使用场景或要求寻求专业建议。

架构

您可以使用以下架构之一部署 Redis:

架构 说明 应用场景 部署方案 高可用性 读取吞吐量 写入吞吐量
标准(独立) 单个 Redis 节点,没有读取副本且不提供高可用性。 应用场景:所有数据都放在一个节点上,写入和读取吞吐量均可由一个节点处理,且不需要高可用性。

在 Memorystore(全托管式)和 Redis 开源软件 (OSS)(自行管理)上受支持。

自行管理需要进行更复杂的设置。Memorystore 可以很好地帮助您快速上手。

单节点 单节点
高可用性和/或读取副本 一个 Redis 节点(用于写入操作),具有其他节点(负责提供高可用性),并可选择使用其他方式(例如使用 Sentinel)共享读取负载。 应用场景:写入吞吐量仍可以由一个节点处理,但读取吞吐量无法由一个节点处理,或需要高可用性。

在 Memorystore(全托管式)和 Redis OSS(自行管理)上受支持。

Redis Cluster 架构可提供自动扩缩、高可用性和数据分片,非常适合大规模分布式应用。如需了解手动扩缩、聚簇和分片的利弊权衡和所需的维护工作,请参阅 Memorystore for Redis Cluster 中的零停机扩缩功能

自行管理需要进行更复杂的设置。Memorystore 可以很好地帮助您快速上手。

多可用区 多节点 单节点
集群(无代理) 多个节点使用单独的数据分片拆分数据写入操作。您可以酌情添加高可用性和读取副本。 应用场景:写入吞吐量无法由一个节点处理,视情况需要高可用性或读取复制。 多可用区 多节点 多节点
集群(具有代理) 多个节点使用单独的数据分片拆分数据写入操作。您可以酌情添加高可用性和读取副本。代理部署在每个主节点上。 应用场景:写入吞吐量无法由一个节点处理,视情况需要高可用性或读取复制;以及费用过高或不方便重构客户端应用来使用 Redis Cluster API 或者使用代理可提供其他好处。

受 Redis Enterprise Cloud(全托管式)或 Redis Enterprise Software(自行管理)支持。

使用 Redis OSS 进行自行管理需要进行更复杂的设置。Redis Enterprise Cloud 可以很好地帮助您快速上手。

多可用区或多区域(仅限 Redis Enterprise) 多节点 单节点

部署方案

Google Cloud 提供以下 Redis 部署方案:

  • Google Cloud 的全托管式 Memorystore for Redis:由 Google 管理的、耐用且可用性高的全托管式 Redis 服务,该服务经济实惠且可以快速进行设置、运维和操作。Memorystore 同时支持 Redis Cluster独立 Redis,均可视需要提供高可用性。
  • Redis Ltd. 的自行管理的 Redis Enterprise 或全托管式 Redis Enterprise:由 Redis Ltd. 许可的、耐用且可用性高的 Redis 集群,提供两个管理方案:由 Redis Ltd. 管理(“Redis Enterprise Cloud”),或自行管理(“Redis Enterprise Software”)且由 Redis Ltd. 提供支持。您可以直接从 Redis Ltd. 或通过 Google Cloud Marketplace 购买 Redis Enterprise。Redis Ltd. 支持在 Compute Engine、Google Kubernetes Engine 和 OpenShift 上进行部署。
  • 自行管理的 Redis 开源软件 (OSS):自行管理的 Redis 集群或独立 Redis(视需要提供高可用性),可在 Compute Engine、Google Kubernetes Engine 或 OpenShift 上部署。

选择 Redis 部署方案

本部分介绍如何选择最适合您的工作负载的 Redis 部署方案。图 1 直观展示了决策点:

Redis 部署方案决策树。
图 1:决策因素和部署方案。

选择 Redis 管理模型

您可以选择以下管理模式之一:

  • 全托管式部署。将部署和管理操作分流给服务提供商。如果您需要专注于构建应用并分流管理任务,请选择此模型。

  • 自行管理的部署。您负责部署和管理操作。如果存在以下任一情况,可选择此模型:

    • 您目前已实现经营规模经济,管理和运营 Redis 在贵组织具有经济意义。

    • 您有一个战略偏好,即仅依赖 IaaS。

    • 您需要高级优化。

评估部署方案

选择管理模型后,请评估您可以使用的部署方案。

全托管式方案

对于全托管式部署,您可以使用 Memorystore 或 Redis Enterprise Cloud。

Memorystore

如果存在以下任一情况,可选择 Memorystore:

  • 您偏向于将托管式软件的支持与 Google Cloud 整合。
  • 您偏向于进行优化,以便更好地与 Google Cloud 构造(例如 Identity and Access Management、API、组织政策、配额或 Cloud Asset Inventory)集成。
  • 您需要使用仅在 Memorystore 中提供的特定功能(例如缩容)。

如需详细了解 Memorystore,请参阅 Memorystore 产品文档

部署方案
Redis Enterprise Cloud

如果存在以下任一情况,可选择 Redis Enterprise Cloud:

  • 您需要使用仅在 Redis Enterprise Cloud 中提供特定功能(例如,服务等级协议 [SLA] 承诺可用性为 99.999% 的跨区域主动/主动多主实例写入,RedisSearch 使用场景)。
  • 您需要对不支持 Redis Cluster API 的应用进行集群扩缩。

如需详细了解 Redis Enterprise Cloud,请参阅 Redis Cloud 文档

自行管理的方案

对于自行管理的部署,您可以在 Redis Enterprise 或 Redis 开源软件之间进行选择。

Redis Enterprise

如果存在以下任一情况,可选择自行管理的 Redis Enterprise:

  • 您的应用需要使用其特有的功能,例如用于横向扩容的自动重新分片、Redis on Flash 或适用于 Kubernetes 的 Redis Enterprise Operator。
  • 您的运营团队不具备所需技能,在没有合格的第三方支持的情况下无法在内部处理复杂的 Redis 问题。
  • 您偏向于使用 Redis Ltd. 提供的企业支持服务,并由贵组织管理相关的许可费用。

如需详细了解 Redis Enterprise Software,请参阅 Redis Enterprise Software 文档

部署方案
采购和结算方案
Redis 开源软件

如果存在以下任一情况,可选择自行管理的 Redis 开源软件:

  • 您需要或偏向于全面自定义,而使用其他方案无法实现。
  • 您的运营团队具备所需的技能,在没有合格的第三方支持的情况下可以在内部处理复杂的 Redis 问题。
  • 您希望省下许可费用。
  • 您拥有大量内部 Redis 和 Linux 内核调优资源,或者您的使用场景并不需要调优。

部署自行管理的 Redis 开源软件时,请根据您选择的平台策略选择部署目标。Redis 开源软件可以部署在 Compute Engine、Google Kubernetes Engine 或 OpenShift 上。GKE Autopilot 可以减少部署和管理工作,但其他方面可能会受到更多限制,例如较难缩容。

如需详细了解 Redis 开源软件,请参阅 Redis.io

特性比较

下表总结了所有部署方案之间的主要区别:

部署特征 部署方案
Memorystore for RedisRedis 集群 Redis Enterprise Cloud Redis Enterprise Software Redis 开源软件
管理者 完全由 Google 管理 完全由 Redis Ltd. 管理 自行管理 自行管理
支持的平台 Google Redis Ltd. Redis Ltd. 自行支持
结算方 Google Redis Ltd. 或 Google

基础设施由 Google 结算。

Redis Ltd. 许可和支持由 Redis Ltd. 或 Google 结算。

Google
费用要素

包含所有费用。

包括:基础设施、许可、支持和管理费用。

如需了解详情,请参阅 Memorystore 价格

包含所有费用。

包括:基础设施、许可、支持和管理费用。

如需了解详情,请参阅 Redis Enterprise Cloud 价格

包含软件许可和支持费用。基础设施使用量由 Google Cloud 单独结算。

管理费用(包括部署、调优、人员和停机时间)由客户承担。

如需了解详情,请参阅 Redis Enterprise Software 价格

没有服务费或许可费。基础设施使用量由 Google Cloud 结算。

管理费用(包括部署、调优、人员和停机时间)由客户承担。

服务等级协议
  • Redis 标准:99.9% 的正常运行时间;每月停机时间小于或等于 43.2 分钟
  • Redis 集群:99.99% 的正常运行时间,提供多可用区高可用性;每月停机时间小于或等于 4.38 分钟。

如需了解详情,请参阅 Memorystore 服务等级协议

  • Redis 标准:99.9% 的正常运行时间;每月停机时间小于或等于 43.2 分钟
  • Redis 集群:99.99% 的正常运行时间,提供多可用区高可用性;每月停机时间小于或等于 4.38 分钟。
  • 多区域主动/主动高可用性:99.999% 的正常运行时间;每月停机时间小于或等于 26.3 分钟。

如需了解详情,请参阅 Redis Cloud 服务等级协议

不适用。

由您负责正常运行时间。

不适用。

由您负责正常运行时间。

免费层级 30 天免费试用 不适用
数据分层 自动分层 自动分层
多云 手动 可行,但涉及大量工作
多区域主动/主动 手动 可行,但涉及大量工作
模块
法规遵从 内置对不同合规性制度的支持。如需了解详情,请参阅符合的法规和标准 内置对不同合规性制度的支持。如需了解详情,请参阅 Redis Trust Center 内置对不同合规性制度的支持。如需了解详情,请参阅 Redis Trust Center 需要手动管理合规性。如需了解详情,请参阅符合的法规和标准
扩缩集群写入 横向缩容和扩容 横向缩容和扩容 横向扩容。横向缩容需要手动操作。 自行管理,需要手动操作。
自动再平衡 自行管理,需要手动操作 自行管理,需要手动操作
添加高可用性 顺畅无缝,无需重新部署 顺畅无缝,无需重新部署 无需重新部署,但需要手动操作 需要大量手动操作 - 可能需要重新部署,具体取决于您的原始架构
添加读取副本 顺畅无缝,无需重新部署 顺畅无缝,无需重新部署 需要大量手动操作 - 可能需要重新部署,具体取决于您的原始架构 自行管理,需要手动操作
在超出写入吞吐量时迁移到数据分片的 Redis 集群 需要重新部署,但提供了工具来简化工作。需要重构客户端以支持 Redis Cluster API。 顺畅无缝,无需重新部署 顺畅无缝,无需重新部署 自行管理,需要手动操作