このページでは、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 インスタンスでキーが期限切れになっていると、インスタンスのスケーリング後にキーが少なくなります。