我们最近调查了我们的客户,并收到了许多很棒且有趣的反馈。例如,我们发现 71% 的用户增加了他们对 Redis Enterprise 的使用,因为他们的业务增长了。
图 1. Redis 客户增加了他们对 Redis 的使用。
在我们的客户群中,我们已经看到数据库大小和吞吐量要求增长的速度有多快。假设您在一段时间前启动了一个新应用程序,并且它将数据存储在 Redis 中。假设您的数据集大小在启动时约为 1 GB,但您的应用程序变得非常受欢迎。您的 Redis 数据集可能已增长到超过 20 GB,并且有望在未来几天内达到约 50 GB。在这种情况下,启动时每秒 100,000 次操作的吞吐量现在可能逐渐接近每秒 1,000,000 次操作的要求——这对任何数据库来说都是一个挑战。
Redis Enterprise Cloud 在这种情况下,用户只需切换到 Redis Enterprise Cloud 控制台中更高的限制,即可轻松增加其数据库大小和吞吐量容量。这种完全托管的无服务器 DBaaS (数据库即服务) 由 Redis Enterprise 架构提供支持,让您以完全透明的方式增加数据集大小和吞吐量。
图 2. Redis Enterprise Cloud 包括一个管理员仪表板,用于增加内存大小和吞吐量。
在幕后,这一切都无缝运行,这要归功于 Redis Enterprise 的共享无关、对称架构。该技术由一个集群和一组物理或虚拟节点组成。每个节点包含零到几百个数据库,这些数据库可以配置为简单数据库、高可用性 (HA) 数据库、集群数据库或 HA 集群数据库。
图 3. Redis Enterprise 数据库可以配置为简单模式、HA 模式、集群模式和 HA 集群模式。
如下图四所示,集群中的 Redis Enterprise 节点包含 Redis 分片、零延迟代理、集群管理器和安全的 REST API。代理维护数据库端点并通过隐藏细节来掩盖集群复杂性。例如,对于具有跨多个分片的数据集的集群数据库,代理是单个端点并将每个请求转发到适当的分片。
图 4. Redis Enterprise 节点组件
当您增加数据库的内存或吞吐量大小时,Redis Enterprise 会根据您的要求计算所需的额外分片和集群节点数量,将新分片和节点添加到集群,并重新平衡数据以获得最佳性能。Redis Enterprise 还优化您的分片大小,使其足够小,以便快速复制、分片迁移、备份和恢复。图五显示了当您向现有数据库添加一对新的主副本分片时会发生什么。
图 5. 使用 Redis Enterprise 通过重新分片进行横向扩展。
Redis Enterprise 中的代理在此操作中起着关键作用。由于它允许连接到跨多个分片的 Redis 数据库的单个端点,因此即使在重新分片之后,您的应用程序仍然连接到相同的端点。这确保了您不必对应用程序代码进行任何更改,因为您的数据库大小会增加。
图 6. 具有代理作为前端的主副本分片的 Redis Enterprise 数据库
有关此工作的具体原理的更多信息,让我们探讨 Redis Enterprise 在重新分片期间执行的四个主要步骤。
步骤 1: 该平台构建两个新的副本 (R1 和 R2),将数据集的一半从主节点移动到 R1,并将数据集的另一半(互斥)从副本移动到 R2。
步骤 2: 接下来,Redis Enterprise 在完成重新分片过程之前清空所有未完成的请求。这保证了一致性并避免丢失任何“写入”操作。
步骤 3: 第三个步骤包括将主节点转换为 master 1,将副本转换为 master 2,然后停止清空过程。现在,所有新请求都由 master 1 和 master 2 处理,并且在步骤 1 中引入的新分片(R1 和 R2)将成为两个新主分片的副本。
步骤 4: 最后,该平台修剪 master 1 和 master 2,以便每个分片都保存与 Redis 哈希槽的一半关联的数据集。
正如您所看到的,Redis Enterprise Cloud 以真正的无服务器方式管理分片和代理。作为用户,您不必担心节点或集群,并且上述扩展操作对您来说是完全透明的。如果您使用的是 Redis Enterprise 软件,则管理控制台提供了您以无缝方式线性扩展所需的所有工具。
如果您的目标是扩展得更高,您可以在 Redis Enterprise 中配置多个代理服务器。通过此配置,您可以利用我们的集群 API 连接到您的应用程序所需的所有代理服务器。最近,我们展示了这种独特的共享无关架构如何以完全线性的方式扩展到 每秒 2 亿次操作。
Redis on Flash (RoF) 是另一种扩展数据库的方法,同时节省超过 70% 的基础设施成本。当您的数据集大小超过 100GB 并且数据集中值的平均大小大于键的平均大小时,此选项可能非常具有成本效益。此外,当大多数数据库查询都针对数据集的子集时,RoF 是最佳选择,这允许 RoF 仅将工作数据集保存在内存 (RAM) 中。
图 7. Redis on Flash 的多层内存架构
在 Redis,我们努力了解并满足客户的需求。当我们听到有关管理不断增长的数据的痛点时,我们投资构建了正确的功能来克服这些问题。如今,超过 7,400 家企业客户受益于我们上面描述的 Redis Enterprise 扩展功能。
了解最适合您情况的扩展选项。立即致电 (415) 930-9666 联系我们的专家。如果您已经知道您需要多大的数据库,请联系我们获取定价。