本文档简要介绍如何部署 Redis 并迁移到 Google Cloud,包括根据您的要求在不同服务上部署 Redis 的方案和利弊权衡。
Redis 是内存中数据结构存储区,可用作数据库、缓存、消息代理等。Google Cloud 完全支持 Redis,包括以下各项:
Memorystore 和 Redis Ltd. 提供的全托管式方案
使用以下产品的自行管理方案:
在 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 管理模型
您可以选择以下管理模式之一:
全托管式部署。将部署和管理操作分流给服务提供商。如果您需要专注于构建应用并分流管理任务,请选择此模型。
自行管理的部署。您负责部署和管理操作。如果存在以下任一情况,可选择此模型:
您目前已实现经营规模经济,管理和运营 Redis 在贵组织具有经济意义。
您有一个战略偏好,即仅依赖 IaaS。
您需要高级优化。
评估部署方案
选择管理模型后,请评估您可以使用的部署方案。
全托管式方案
对于全托管式部署,您可以使用 Memorystore 或 Redis Enterprise Cloud。
Memorystore
如果存在以下任一情况,可选择 Memorystore:
- 您偏向于将托管式软件的支持与 Google Cloud 整合。
- 您偏向于进行优化,以便更好地与 Google Cloud 构造(例如 Identity and Access Management、API、组织政策、配额或 Cloud Asset Inventory)集成。
- 您需要使用仅在 Memorystore 中提供的特定功能(例如缩容)。
如需详细了解 Memorystore,请参阅 Memorystore 产品文档。
部署方案
- Memorystore for Redis(独立、高可用性)
- Memorystore for Redis Cluster(集群、高可用性)
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 文档。
部署方案
- GKE 或 OpenShift 上的自行管理的 Redis Enterprise Software,可视需要使用适用于 Kubernetes 的 Redis Enterprise Operator
- Compute Engine 上的自行管理的 Redis Enterprise Software
采购和结算方案
- 许可和支持由 Redis Inc. 结算,基础设施由 Google 结算。
- 许可和支持通过 Google Cloud Marketplace 购买,而基础设施由 Google 结算。
Redis 开源软件
如果存在以下任一情况,可选择自行管理的 Redis 开源软件:
- 您需要或偏向于全面自定义,而使用其他方案无法实现。
- 您的运营团队具备所需的技能,在没有合格的第三方支持的情况下可以在内部处理复杂的 Redis 问题。
- 您希望省下许可费用。
- 您拥有大量内部 Redis 和 Linux 内核调优资源,或者您的使用场景并不需要调优。
部署自行管理的 Redis 开源软件时,请根据您选择的平台策略选择部署目标。Redis 开源软件可以部署在 Compute Engine、Google Kubernetes Engine 或 OpenShift 上。GKE Autopilot 可以减少部署和管理工作,但其他方面可能会受到更多限制,例如较难缩容。
如需详细了解 Redis 开源软件,请参阅 Redis.io。
其他资源
特性比较
下表总结了所有部署方案之间的主要区别:
部署特征 | 部署方案 | |||
---|---|---|---|---|
Memorystore for Redis 和 Redis 集群 | Redis Enterprise Cloud | Redis Enterprise Software | Redis 开源软件 | |
管理者 | 完全由 Google 管理 | 完全由 Redis Ltd. 管理 | 自行管理 | 自行管理 |
支持的平台 | Redis Ltd. | Redis Ltd. | 自行支持 | |
结算方 | Redis Ltd. 或 Google | 基础设施由 Google 结算。 Redis Ltd. 许可和支持由 Redis Ltd. 或 Google 结算。 |
||
费用要素 | 包含所有费用。 包括:基础设施、许可、支持和管理费用。 如需了解详情,请参阅 Memorystore 价格。 |
包含所有费用。 包括:基础设施、许可、支持和管理费用。 如需了解详情,请参阅 Redis Enterprise Cloud 价格。 |
包含软件许可和支持费用。基础设施使用量由 Google Cloud 单独结算。 管理费用(包括部署、调优、人员和停机时间)由客户承担。 如需了解详情,请参阅 Redis Enterprise Software 价格。 |
没有服务费或许可费。基础设施使用量由 Google Cloud 结算。 管理费用(包括部署、调优、人员和停机时间)由客户承担。 |
服务等级协议 |
如需了解详情,请参阅 Memorystore 服务等级协议。 |
如需了解详情,请参阅 Redis Cloud 服务等级协议。 |
不适用。 由您负责正常运行时间。 |
不适用。 由您负责正常运行时间。 |
免费层级 | 否 | 是 | 30 天免费试用 | 不适用 |
数据分层 | 否 | 自动分层 | 自动分层 | 否 |
多云 | 否 | 是 | 手动 | 可行,但涉及大量工作 |
多区域主动/主动 | 否 | 是 | 手动 | 可行,但涉及大量工作 |
模块 |
|
|
||
法规遵从 | 内置对不同合规性制度的支持。如需了解详情,请参阅符合的法规和标准。 | 内置对不同合规性制度的支持。如需了解详情,请参阅 Redis Trust Center。 | 内置对不同合规性制度的支持。如需了解详情,请参阅 Redis Trust Center。 | 需要手动管理合规性。如需了解详情,请参阅符合的法规和标准。 |
扩缩集群写入 | 横向缩容和扩容 | 横向缩容和扩容 | 横向扩容。横向缩容需要手动操作。 | 自行管理,需要手动操作。 |
自动再平衡 | 是 | 是 | 自行管理,需要手动操作 | 自行管理,需要手动操作 |
添加高可用性 | 顺畅无缝,无需重新部署 | 顺畅无缝,无需重新部署 | 无需重新部署,但需要手动操作 | 需要大量手动操作 - 可能需要重新部署,具体取决于您的原始架构 |
添加读取副本 | 顺畅无缝,无需重新部署 | 顺畅无缝,无需重新部署 | 需要大量手动操作 - 可能需要重新部署,具体取决于您的原始架构 | 自行管理,需要手动操作 |
在超出写入吞吐量时迁移到数据分片的 Redis 集群 | 需要重新部署,但提供了工具来简化工作。需要重构客户端以支持 Redis Cluster API。 | 顺畅无缝,无需重新部署 | 顺畅无缝,无需重新部署 | 自行管理,需要手动操作 |