Awselasticache-lazy-loading

提供:Dev Guides
移動先:案内検索

AWS ElastiCache-遅延読み込み

キャッシュにデータを入力し、キャッシュを維持する方法はいくつかあります。 これらの異なる方法は、キャッシュ戦略と呼ばれます。 リーダーボードのデータを保持するゲームサイトには、ニュースWebサイトのトレンドニュース表示とは異なる戦略が必要です。 この章では、遅延ロードと呼ばれるこのような戦略について学習します。

アプリケーションによってデータが要求されると、要求はElastiCacheのキャッシュ内のデータを検索します。 2つの可能性があります。 データがキャッシュに存在するか、存在しません。 したがって、状況を次の2つのカテゴリに分類します。

キャッシュヒット

  • アプリケーションは、キャッシュからデータを要求します。
  • キャッシュクエリは、更新されたデータがキャッシュで利用可能であることを検出します。
  • 結果は要求元のアプリケーションに返されます。

キャッシュミス

  • アプリケーションは、キャッシュからデータを要求します。
  • キャッシュクエリは、更新されたデータがキャッシュで利用できないことを検出します。
  • キャッシュクエリによって、要求元のアプリケーションにnullが返されます。
  • これで、アプリケーションはデータベースから直接データを要求して受信します。
  • その後、要求元アプリケーションは、データベースから直接受信した新しいデータでキャッシュを更新します。
  • 次に同じデータが要求されると、上記のキャッシュヒットシナリオに分類されます。

上記のシナリオは、一般的に次の図で表すことができます。

lazy_loading.jpg

遅延読み込みの利点

  • リクエストされたデータのみがキャッシュされます-ほとんどのデータはリクエストされないため、遅延ロードはリクエストされていないデータでキャッシュがいっぱいになることを防ぎます。
  • ノードの障害は致命的ではありません-ノードに障害が発生し、新しい空のノードに置き換えられた場合、レイテンシは増加しますが、アプリケーションは機能し続けます。 新しいノードに対してリクエストが行われると、各キャッシュミスによりデータベースのクエリが実行され、データコピーがキャッシュに追加されて、後続のリクエストがキャッシュから取得されます。

遅延読み込みの欠点

  • キャッシュミスのペナルティ-各キャッシュミスは3回のトリップになります。 1つは、キャッシュからのデータに対する最初の要求、2つは、データに対するデータベースのクエリであり、最後にデータをキャッシュに書き込みます。 これにより、アプリケーションに到達するデータに顕著な遅延が生じる可能性があります。
  • 古いデータ-キャッシュミスがある場合にのみデータがキャッシュに書き込まれると、データベースでデータが変更されたときにキャッシュが更新されないため、キャッシュ内のデータが古くなる可能性があります。 この問題は、次の章で説明するライトスルーおよびTTL戦略の追加によって解決されます。