オープンソースキャッシュ
オープンソースキャッシュとは、通常はインメモリのデータストレージ層であり、プライマリデータベースまたはアプリケーションから頻繁にアクセスされるデータを保存するものです。「オープンソース」という側面は、そのソフトウェアがオープンソースライセンスの下で自由に利用可能であり、開発者が独自のライセンス料なしにそれを検査、変更、展開できることを意味します。
現代のトラフィック量の多いアプリケーションでは、同じ情報を取得するためにプライマリデータベースを繰り返しクエリすることは、遅く、リソースを大量に消費します。キャッシュはこれらのリクエストをインターセプトし、保存されたデータを高速なキャッシュ層から直接提供します。これにより、データベースの負荷が劇的に軽減され、レイテンシが低下し、アプリケーション全体の応答性が向上します。
ユーザーがデータを要求すると、アプリケーションはまずキャッシュをチェックします。データが存在する場合(「キャッシュヒット」)、それは即座に返されます。データが存在しない場合(「キャッシュミス」)、アプリケーションはオリジンデータベースからデータをフェッチし、ユーザーに提供し、同時に将来のリクエストのためにそのコピーをキャッシュに保存します。キャッシュのイビクションポリシー(LRU - Least Recently Usedなど)は、新しい情報のためのスペースを確保するために、古いデータや未使用のデータをいつ削除するかを管理します。
オープンソースキャッシュは、さまざまな技術スタックで不可欠です。一般的な用途には、ユーザー認証のためのセッションデータの保存、静的コンテンツのレンダリングされた HTML ページのキャッシュ、データベースクエリ結果の保存、リーダーボードや頻繁にアクセスされる製品カタログの管理などが含まれます。
キャッシュの実装は複雑さを伴います。開発者はキャッシュの無効化を管理する必要があります。つまり、データベース内の元のデータが変更されたときに、キャッシュ内の古いコピーが迅速に削除または更新されるように保証する必要があります。設定が不適切なキャッシュは、誤ったデータを提供することにつながる可能性があります。
関連する概念には、コンテンツをユーザーにより地理的に近い場所にキャッシュする CDN(コンテンツデリバリーネットワーク)や、冗長性を提供するものの、専用のキャッシュ層ほど読み取り操作を本質的に高速化しないデータベースレプリケーションなどがあります。