实例伸缩简介

本页介绍了 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 实例中有过期的密钥,则实例扩缩后密钥数将减少。

最佳做法

为了帮助您扩缩实例的容量,我们建议您遵循以下最佳实践:

  • 选择伸缩时间:为了提高实例伸缩的速度和可靠性,请在流量较低的时段进行伸缩。如需了解如何监控实例流量,请参阅监控实例。
  • 伸缩时考虑存储的数据:如果您缩容实例,则必须选择大于实例存储的数据量的大小。例如,如果您有一个 10 GB 的实例,其中包含 5.5 GB 的存储数据,则将该实例的大小调整为 6 GB 或更大。
  • 无法扩缩时重试:资源可用性经常发生变化。如果您因临时资源限制而无法扩缩实例,请稍后尝试扩缩实例。