实例伸缩简介

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