Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  高可用性と拡張性  /  MySQL と memcached の併用

16.6 MySQL と memcached の併用

memcached は、使用可能な専用または予備の RAM にデータとオブジェクトを格納して、アプリケーションが解析のレイヤーやディスク I/O を介さずに高速にアクセスできるようにする、単純でスケーラビリティーの高いキーベースのキャッシュです。使用するには、1 台以上のホストで memcached コマンドを実行し、共有キャッシュを使用してオブジェクトを格納します。スレッドサポートの詳細は、セクション16.6.2「memcached の使用」を参照してください。

memcached を使用すると、次のような利点があります。

  • すべての情報が RAM に格納されるため、ディスクから毎回情報をロードするよりもアクセス速度が向上します。

  • キー/値ペアの部分にデータ型の制約がないため、複雑な構造、ドキュメント、イメージ、またはそれらの組み合わせなどのデータをキャッシュできます。

  • このインメモリーキャッシュを、一時的な情報を保持するため、またはデータベースにも格納される情報の読み取り専用キャッシュとして使用する場合、memcached サーバーの障害は重要ではありません。永続的なデータについては、データベースクエリーを使用する代替のルックアップ方法にフォールバックして、別のサーバー上の RAM にデータを再ロードできます。

一般的な使用環境では、memcached が提供するキャッシュから情報を読み取るようにアプリケーションを変更します。情報が memcached に存在しない場合は、MySQL データベースからデータがロードされ、キャッシュされたデータを利用して後続する同じオブジェクトの要求を処理できるように、キャッシュにデータが書き込まれます。

通常の配備レイアウトについては、図16.4「memcached アーキテクチャーの概要」を参照してください。

図 16.4 memcached アーキテクチャーの概要

memcached アーキテクチャーの概要

この構造例では、どのクライアントもいずれかの memcached サーバーに接続して特定のキーを要求できます。各クライアントは、図に示したすべてのサーバーと通信するように構成されます。クライアントの内部で情報を格納するよう要求されると、データ参照に使用されるキーがハッシュ化され、このハッシュを使用していずれかの memcached サーバーが選択されます。memcached サーバーの選択はサーバーに接続する前にクライアント上で行われるため、このプロセスは軽量のままです。

クライアントが同じキーを要求すると、同じアルゴリズムが再度使用されます。同じキーによって同じハッシュが生成され、同じ memcached サーバーがデータのソースとして選択されます。この方法を使用すると、キャッシュされたデータがすべての memcached サーバーに分散し、どのクライアントからもキャッシュされた情報にアクセスできるようになります。この結果、データベースからネイティブに情報を読み取る場合に比べてはるかに高速に情報 (特に複雑なデータや構造) を返すことができる分散型のメモリーベースのキャッシュが提供されます。

従来型の memcached サーバー内に保持されるデータはディスクには格納されず (RAM にのみ格納されます。つまり、データの永続性はありません)、RAM キャッシュは常にバッキングストア (MySQL データベース) から移入されます。memcached サーバーに障害が発生した場合は、常に MySQL データベースからデータをリカバリできます。