规划Active-Active数据库的注意事项

在规划部署时需要考虑的关于Active-Active数据库的信息,例如兼容性、限制和特殊配置

在Redis Enterprise中,Active-Active地理分布基于无冲突复制数据类型(CRDT)技术。与没有地理分布的数据库相比,Active-Active数据库具有更复杂的复制和网络,以及不同的数据类型。

由于Active-Active数据库的复杂性,在规划您的Active-Active数据库时,有一些特殊的注意事项需要牢记。

有关地理分布式复制的更多信息,请参见Active-Active Redis。有关其他高可用性功能的更多信息,请参见Durability and high availability

参与的集群

您至少需要两个参与集群来创建一个Active-Active数据库。如果您的数据库需要超过十个参与集群,请联系Redis支持。您可以在数据库创建后添加或删除参与集群

注意:
如果Active-Active数据库运行在闪存上,则无法添加仅运行在RAM上的参与集群。

从集群管理器UI对Active-Active数据库配置所做的更改仅适用于您正在编辑的集群。对于跨所有集群的全局配置更改,请使用crdb-cli命令行工具。

内存限制

数据库内存限制定义了集群上所有数据库副本和分片的最大大小。您的内存限制还决定了分片的数量。

除了您的数据集外,内存限制还必须考虑复制、Active-Active元数据和模块开销。这些功能可能会增加您的数据库大小,有时会增加两倍或更多。

在确定数据库大小时需要考虑的因素:

  • 数据集大小: 您希望您的限制高于数据集大小,以便为开销留出空间。
  • 数据库吞吐量: 高吞吐量需要更多的分片,导致更高的内存限制。
  • modules: 使用模块与您的数据库可能会消耗更多内存。
  • 数据库集群: 使您能够将数据分散到多个节点的分片中(横向扩展)。
  • database replication: 启用复制会使内存消耗翻倍
  • Active-Active 复制: 启用 Active-Active 复制需要双倍于常规复制的内存,这可能是每个实例原始数据大小的两倍(2x)。
  • database replication backlog 用于分片之间的同步。默认情况下,这设置为数据库大小的1%。
  • Active-Active 复制积压 用于集群之间的同步。默认情况下,这设置为数据库大小的1%。

了解Active-Active数据库的驱逐策略激活阈值较低也很重要,因为它需要传播到所有参与的集群。当其中一个Active-Active实例达到其内存限制的80%时,驱逐策略开始驱逐键。

有关内存限制的更多信息,请参阅内存和性能数据库内存限制

网络

Active-Active数据库的网络要求包括:

  • 每个托管集群的网络与实例之间的VPN(如果您的数据库跨越WAN)。
  • 从所有参与集群中的所有节点到每个集群上的多个端口的网络连接。
  • 在所有集群的每个节点上运行的网络时间服务

在创建Active-Active数据库之前,必须配置集群之间的网络。如果集群之间没有连接,设置将失败。

网络端口

每个节点都必须能够访问其他所有节点的REST API端口,以及用于代理、VPN和集群管理器UI的其他端口。有关更多详细信息,请参阅网络端口配置。这些端口应允许通过可能位于集群之间的防火墙。

网络时间服务

Active-Active数据库需要一个时间服务,如NTP或Chrony,以确保所有集群节点上的时钟同步。 这对于避免可能影响数据完整性的内部集群通信问题至关重要。

有关更多信息,请参见Synchronizing cluster node clocks

Redis 模块

多个Redis模块与Active-Active数据库兼容。请查看兼容的Redis模块列表。

注意:
从v6.2.18开始,您可以通过结合RedisJSON和RediSearch在Active-Active数据库中对嵌套的JSON文档进行索引、查询和全文搜索。

限制

Active-Active 数据库有以下限制:

  • 现有的数据库无法更改为Active-Active数据库。要将数据从现有数据库移动到Active-Active数据库,您必须创建一个新的Active-Active数据库迁移数据
  • Discovery service 不支持 Active-Active 数据库。Active-Active 数据库需要 FQDNs 或 mDNS
  • CLI 不支持 FLUSH 命令。要刷新数据库,请使用 API 或集群管理器 UI。
  • UNLINK 命令是一个针对所有类型键的阻塞命令。
  • 在Active-Active数据库中不支持跨槽多命令(如MSET)。
  • 数据库创建后,哈希策略无法更改。
  • 如果Active-Active数据库在闪存上运行,则无法添加仅在RAM上运行的参与集群。
RATE THIS PAGE
Back to top ↑