关于伸缩实例

本页介绍了 Memorystore for Redis 实例在扩缩期间的行为。如需了解如何扩缩 Redis 实例,请参阅扩缩 Redis 实例

扩缩实例会影响应用的性能和存储空间,具体视实例的层级而定。此外,根据当前使用的内存量扩缩实例也存在一些限制。本页介绍了扩缩实例对应用的影响以及何时可以扩缩实例。

扩缩实例的最佳做法

  • 对于标准层级实例,为提高扩缩操作的速度和可靠性,请在低实例流量期间扩缩实例。如需了解如何监控实例流量,请参阅监控 Redis 实例

  • 在缩减标准层级实例的容量时,选择的大小必须大于存储的数据量,否则扩缩将失败。

    • 例如,如果有 10 GB 的实例,其中存储的数据为 5.5 GB,则可以将该实例的大小调整为至少 6 GB。您可以在 Google Cloud 控制台中实例的详情页面上查看实例使用的存储空间容量。

实例扩缩行为

对于基本层级和标准层级实例,伸缩期间都会保留数据。 在伸缩期间,实例会进行几分钟或更短的短暂连接重置。应用应在代码中整合重试逻辑,以便能够重新连接到实例。IP 地址和连接字符串保持不变。

由于短期连接中断,可能会有少量过时或不一致的数据,这些数据在实例不可用期间没有写入或更新到缓存。

如果您在连接中断期间发出写入操作,Memorystore 会返回错误 READONLY You can't write against a read only replica。此错误是暂时性的,仅持续几秒钟。伸缩操作完成后便会解析。

伸缩时的写入负载

您应在实例流量较低期间扩缩实例,以最大限度降低对应用性能的影响。高写入负载或高内存压力可能会导致伸缩操作所需的时间明显增加,并可能导致操作失败。如需了解详情,请参阅扩缩和版本升级操作

过期的键

扩缩标准层级实例时不会同步过期的密钥。如果在扩缩之前您在 Redis 实例中有过期的密钥,则实例扩缩后密钥数将减少。