dot 快速的未来正在您的城市举办的活动中到来。

加入我们在 Redis 发布会

Redis Enterprise 已 基准测试 以证明真正的线性扩展 - 从使用 6 个 AWS EC2 实例的 1000 万次操作/秒到使用 18 个 AWS EC2 实例的 3000 万次操作/秒。如果 Redis 服务器达到读/写操作超过其承受能力的程度,有多种方法可以扩展您的数据库

https://www.youtube.com/embed/m8HL1g9ak1k

扩展分片和节点

Redis Enterprise 的重新分片机制基于 Redis 复制。每当需要扩展分片时,Redis Enterprise 集群就会启动另一个 Redis 实例,并将原始分片的一半哈希槽复制到该实例。新分片填充后,代理会以对应用程序完全透明的方式将流量发送到这两个分片。

扩展数据库分片有两种方法

  1. 通过向数据库添加分片而不向集群添加节点来扩展。当集群中有足够的未利用容量时,此方案非常有用

扩展

2. 通过向 Redis Enterprise 集群添加节点(多个)来扩展,然后重新平衡和重新分片数据库。如果需要在集群中增加更多物理资源以扩展数据库,此方案非常有用

扩展代理

默认情况下,在 Redis Enterprise 集群上创建的每个数据库都使用单个冗余代理进行操作。虽然代理非常高效,并且在中等云实例上运行时通常可以处理超过 100 万次操作/秒,但在某些情况下需要扩展代理以处理网络带宽或每秒数据包限制。Redis Enterprise 允许您跨集群的多个节点扩展代理,而无需更改应用程序代码。Redis 客户端可以使用 DNS 轮询来选择每次创建新连接时要使用哪个代理。

此外,为了优化跨集群节点的网络流量,Redis Enterprise 根据代理配置选择分片放置策略。当使用单个代理配置时,Redis Enterprise 会尝试将尽可能多的分片放在每个节点上(这也被称为密集配置)。当使用多代理配置时,集群的分片放置策略将基于稀疏配置。

扩展代理

使用开源集群 API 实现真正的线性可扩展性

Redis Enterprise 支持开源 (OSS) 集群 API,以允许在任何集群大小下仅在您的客户端和集群之间进行一次网络跃迁。这样,您的客户端可以使用 OSS 集群协议了解分片在集群节点上的实际放置位置,如下所示

使用 OSS 集群 API 扩展

  • 从 Redis 客户端的角度来看,每个代理代表的哈希槽 (HS) 范围等于代理节点上托管的主分片提供的所有 HS 的总和。换句话说,从客户端的角度来看,代理代表一个具有主角色的大型 Redis 实例。
  • 与 OSS 集群一样,客户端(标准 OSS 客户端)根据键值项的键和 Redis 集群哈希函数将请求发送到相关代理。
  • 请求到达代理后,它通过应用相同的哈希函数将其转发到节点上的相关分片。
  • 在集群拓扑发生变化(例如分片迁移、主/从故障转移等)的情况下,代理会更新它管理的 HS,并且如果必要,会将来自客户端的请求重定向到集群中的另一个节点(使用 MOVED 响应)。

当使用 OSS 集群 API 时,Redis Enterprise 以真正的线性方式进行扩展。下图总结了一系列 基准测试 的结果

使用“replica-of”功能扩展“读”操作,使用读副本

Redis Enterprise 允许您通过创建另一个数据库(在同一个集群上)来扩展您的读操作,该数据库将作为您使用“replica-of”功能的原始数据库的读副本。您的读副本被视为一个完全不同的数据库,并且可以配置不同的分片数量以及不同的可用性或持久性特性。您可以创建多个读副本或仅增加现有读副本中的分片数量,以进一步扩展您的读操作。

使用读副本扩展“读”操作


下一节  ►  高可用性 Redis