Memcachedは、フリーでオープンソースの高性能な分散型メモリオブジェクトキャッシュシステムで、主に動的なWebアプリケーションを高速化するために、データやオブジェクトをRAMにキャッシュして、データベースやAPIの読み込み回数を減らすために使用します。
簡単に言うと、Memcachedによってアプリケーションは頻繁にアクセスされる情報を記憶して再利用でき、その結果より低速なディスクベースのデータベースからデータを取得する必要があった操作の時間を大幅に短縮できます。
例えば、商品説明や画像を含む人気のあるECサイトを運営しているとします。顧客が商品ページにアクセスするたびにアプリケーションは商品の詳細についてデータベースに問い合わせる必要があります。あなたのサイトに何千、何百万人もの訪問者がいる場合、これらのデータベースクエリはあなたのサイトの速度を低下させる可能性があります。
Memcachedを使用すると、最初に商品ページにアクセスしたときにアプリケーションはデータベースに問い合わせを行い、商品の詳細をキャッシュに保存します。次に顧客が同じ商品ページにアクセスしたとき、アプリケーションはキャッシュから詳細を取得でき、これはデータベースに問い合わせるよりもはるかに高速です。
Memcachedは永続的なストレージではないことを理解することが重要です。Memcachedに保存されたデータはシステムが再起動した場合や、キャッシュがいっぱいになって古いデータが押し出された場合など、いつでも失われる可能性があります。したがって、Memcachedは(データベースのように)永続的に他の場所に存在し、必要に応じて再ロードまたは再計算できるデータをキャッシュするために使用されます。
Memcachedはシンプルで強力ですが、その有用性はアプリケーションの性質に依存することに留意する必要があります。読み込みが多いワークロードや、同じデータが何度も要求されるような状況では最も有益です。また、Memcachedシステムの管理には、慎重なチューニングと管理が必要になることがあります。