dot Redis 8 已发布,且它是开源的

了解更多

扩展 Redis:只读副本还是集群?

值得庆幸的是,Redis 并未奴役人类。

相反,它使用 异步复制,“为了可伸缩性……或者仅仅为了数据冗余。

此外,“一个 [Redis] 主节点可以有多个从节点……[它们]能够接受其他从节点的连接。除了将多个从节点连接到同一个主节点外,从节点还可以以图状结构连接到其他从节点。

设置 Redis 复制很简单,而且它的灵活性提供了强大的能力。
Redis 复制的经典用例包括:

  1. 通过使用副本进行密集读取操作来扩展性能。
  2. 在多个位置实现数据冗余。
  3. 将数据持久化成本从主节点分摊给从节点。

作为 Redis 服务提供商,我们经常被问到为什么我们不提供对其只读副本的访问权限。这是一个合理的问题,我们的回答与每个用例有关:

  1. 扩展

    我们的服务通过为我们管理的数据库分配资源来实现扩展。我们在集群上部署,并在其上创建数据库实例。每个数据库实例都在集群成员之间进行分片,并且每个分片都是可拆分、高可用、可迁移和动态(重新)调整大小的。为了提供更多读取(或写入、RAM、CPU 或带宽),我们只需根据需要进行重新分片和重新平衡。我们的集群会立即透明地提供对新分片的访问,因此无需访问只读副本。

  2. 冗余

    我们在分片级别使用复制来实现数据冗余。我们的冗余通过服务内部的监控和自动故障转移机制得到增强,无需用户干预。

  3. 负载

    我们的副本配置为管理数据持久化,以便主分片可以自由处理请求。

由于复制是异步的,访问陈旧数据时可能会引入不一致性。另一方面,分片没有这个特性,因此是解决读写扩展挑战的更优方法。因为我们的托管服务解决了可扩展性(通过分片)、冗余性(通过自动故障转移)和负载管理,所以只有少数情况下访问只读副本才有价值。

例如,可以设置一个副本,为相关方(如开发团队)提供只读数据库访问权限。

我们计划将来支持此功能,因此如果您有只读副本的其他用例,我们很乐意听取您的意见。如果您出于扩展、冗余或分载以外的目的使用复制,请告知我们——只需发送邮件至 [email protected] 或联系我们的支持团队