Redis Enterprise 已 基准测试 以证明真正的线性扩展 - 从使用 6 个 AWS EC2 实例的 1000 万次操作/秒到使用 18 个 AWS EC2 实例的 3000 万次操作/秒。如果 Redis 服务器达到读/写操作超过其承受能力的程度,有多种方法可以扩展您的数据库
Redis Enterprise 的重新分片机制基于 Redis 复制。每当需要扩展分片时,Redis Enterprise 集群就会启动另一个 Redis 实例,并将原始分片的一半哈希槽复制到该实例。新分片填充后,代理会以对应用程序完全透明的方式将流量发送到这两个分片。
扩展数据库分片有两种方法
2. 通过向 Redis Enterprise 集群添加节点(多个)来扩展,然后重新平衡和重新分片数据库。如果需要在集群中增加更多物理资源以扩展数据库,此方案非常有用
默认情况下,在 Redis Enterprise 集群上创建的每个数据库都使用单个冗余代理进行操作。虽然代理非常高效,并且在中等云实例上运行时通常可以处理超过 100 万次操作/秒,但在某些情况下需要扩展代理以处理网络带宽或每秒数据包限制。Redis Enterprise 允许您跨集群的多个节点扩展代理,而无需更改应用程序代码。Redis 客户端可以使用 DNS 轮询来选择每次创建新连接时要使用哪个代理。
此外,为了优化跨集群节点的网络流量,Redis Enterprise 根据代理配置选择分片放置策略。当使用单个代理配置时,Redis Enterprise 会尝试将尽可能多的分片放在每个节点上(这也被称为密集配置)。当使用多代理配置时,集群的分片放置策略将基于稀疏配置。
Redis Enterprise 支持开源 (OSS) 集群 API,以允许在任何集群大小下仅在您的客户端和集群之间进行一次网络跃迁。这样,您的客户端可以使用 OSS 集群协议了解分片在集群节点上的实际放置位置,如下所示
当使用 OSS 集群 API 时,Redis Enterprise 以真正的线性方式进行扩展。下图总结了一系列 基准测试 的结果
Redis Enterprise 允许您通过创建另一个数据库(在同一个集群上)来扩展您的读操作,该数据库将作为您使用“replica-of”功能的原始数据库的读副本。您的读副本被视为一个完全不同的数据库,并且可以配置不同的分片数量以及不同的可用性或持久性特性。您可以创建多个读副本或仅增加现有读副本中的分片数量,以进一步扩展您的读操作。
下一节 ► 高可用性 Redis