キャッシュの概念: キャッシュの立ち消えとキャッシュの期限切れ
このレッスンでは、データベースキャッシュの基本的な目的と利点について説明します。そして、キャッシュエビクションとキャッシュエクスパイアの概念を分解し、Momento Cacheの舞台裏でそれらがどのように処理されるのかを説明します。
動画
トランスクリプト
データベースキャッシュは、データベースから頻繁にアクセスされるデータを一時的に保存する領域です。データベースキャッシュの目的は 、データを取り出すためにデータベースにアクセスする回数を減らすことです。データベースキャッシュは、データの保存と取得をデータベースに依存するアプリケーションのパフォーマンスを向上させるために使用されます。データベース・キャッシュは、データベース・サーバーの負荷を軽減し、アプリケーションのスケーラビリティと可用性を向上させるのに役立ちます。
さて、キャッシュの立ち消えとキャッシュの有効期限について説明しよう。この2つの概念は関連しているが、まったく異なるものです。キャッシュの立ち消えとは、キャッシュ・サービスがデータを削除して他のデータのためのスペースを確保することです。これは、キャッシュがいっぱいになり、新しいデータを保存する場所がなくなったときに起こります。
キャッシュ消去ポリシーは、キャッシュ消去が発生したときに、どのデータがキャッシュから消去されるかを決定します。キャッシュ消去ポリシーの例としては、LRU(least recently used)、LFU(least frequently used)、ランダム消去などがあります。キャッシュの有効期限は、キャッシュからデータを削除するプロセスです。これは通常、キャッシュの有効期限(TTL)と呼ばれる値によって決定されます。この値は、データがキャッシュに保存されるときに、それぞれのデータに割り当てられます。TTL値に達すると、そのデータは期限切れとみなされ、サービスによってキャッシュから削除されます。
要約すると、キャッシュの立ち消えとは、新しいデータのためのスペースを確保するためにキャッシュからデータを削除するプロセスであり、キャッシュ・エクスペリエンスとは、もはや新鮮でない、または最新でないとみなされるためにキャッシュからデータを削除することです。この2つの概念は、キャッシュ・システムの効率と有効性を確保するために重要です。
この2つの用語がわかったところで、Momento Cacheサービスに関連するこれらの用語について簡単に説明します。Momentoは、キャッシュの立ち消えをサービス品質低下の重要な指標と考えています。サービスはこれを継続的に監視し、すべての顧客のためにバッファを維持するために容量を追加します。Momento Cacheのサービスレベルの目標は、すべてのキャッシュアイテムのTTLの有効期限を尊重し、データを退避させないことです。
キャッシュの有効期限を設定するために、Momento Cacheはキャッシュに挿入されたオブジェクトごとに、秒単位でtime to liveの値を設定する必要があります。この値を設定する場所は2つあります。1つ目は、SDKへのコールでキャッシュへの接続を確立するときに、その値を指定できます。そして2つ目は、書き込み操作を行うときに、オブジェクトごとにその値を上書きすることです。書き込み操作でTTL値を設定しない場合、SDKは接続オブジェクトの値を使用します。デフォルトでは、TTLの最大値は24時間です。
詳細については、"Cache eviction vs. cache expiration" ドキュメントを参照してください。