Yiiフレームワーク公式ガイドシリーズ28-キャッシュ:概要
2685 ワード
キャッシュはWebアプリケーションのパフォーマンスを向上させる簡便で効率的な方法です.比較的静的なデータをキャッシュに格納し、リクエストを受信したときにキャッシュを取り戻すことで、これらのデータの生成に要する時間を節約できます.
にある Yii でキャッシュを使用するには、主にアプリケーションコンポーネントの構成とアクセスが含まれます.次のアプリケーション構成は1つに2つ使用するように設定されています. memcache サーバのキャッシュコンポーネント.
アプリケーションが実行されると、キャッシュコンポーネントは
Yiiは、異なるメディアにキャッシュデータを格納できる異なるキャッシュコンポーネントを提供する.たとえば、 CMemCache コンポーネントはPHPのmemcache拡張をカプセル化し、メモリをキャッシュストレージメディアとして使用します. CApcCache コンポーネントはPHP APC拡張をカプセル化した.そして CDbCache コンポーネントは、キャッシュされたデータをデータベースに格納します.使用可能なキャッシュ・コンポーネントのリストを次に示します. CMemCache:PHP使用 memcache拡張. CApcCache:PHP使用 APC拡張. CXCache:PHP使用 XCache拡張.注:これは1.0.1バージョンからサポートされています. CEAcceleratorCache:PHP使用 EAccelerator拡張. CDbCache:キャッシュデータを1つのデータテーブルで格納します.デフォルトではruntimeディレクトリのSQLite 3データベースが作成され、使用されます.設定することもできます connectionID プロパティは、使用するデータベースを指定します. CZendDataCache:ZendDataCacheをバックグラウンドキャッシュメディアとして使用します.注意、これは1.0.4バージョンからサポートされています. CFIleCache:ファイルを使用してキャッシュデータを格納します.これは、ページなどの大きなデータを格納するのに特に適している.これは1.0.6バージョンからサポートされています. CDummyCache:現在dummyキャッシュはキャッシュ機能を実現していません.このコンポーネントの目的は、キャッシュの可用性を確認する必要があるコードを簡略化することです.たとえば、開発フェーズやサーバで実際のキャッシュ機能がサポートされていない場合は、このキャッシュコンポーネントを使用できます.実際のキャッシュサポートが有効になっている場合は、対応するキャッシュコンポーネントの使用に切り替えることができます.どちらの場合も、同じコード
ヒント: これらのキャッシュコンポーネントはすべて同じベースクラスから継承されるため CCacheは、キャッシュを使用するコードを変更することなく、別のキャッシュの使用方法に切り替えることができます.
キャッシュは、異なるレベルで使用できます.最下位レベルでは、キャッシュを使用して変数などの単一のデータクリップを格納します. データキャッシュ(data caching).次のレベルでは、ビュースクリプトの一部から生成されたページクリップをキャッシュに格納します.最高レベルでは、ページ全体をキャッシュに格納し、必要に応じて取り戻します.
次のセクションでは、これらのレベルでキャッシュを使用する方法について詳しく説明します.
注意: 定義に従って、キャッシュは不安定なストレージメディアです.タイムアウトがなくても、キャッシュ・データが必ず存在することは保証されません.したがって、キャッシュを永続メモリとして使用しないでください.(たとえば、キャッシュストレージを使用しない Session )を参照してください.
キャッシュシリーズの記事:
Yiiフレームワーク公式ガイドシリーズ29——キャッシュ:データキャッシュ
Yiiフレームワーク公式ガイドブックシリーズ30-キャッシュ:フラグメントキャッシュ(Fragment Caching)
Yiiフレームワーク公式ガイドシリーズ31-キャッシュ:ページキャッシュ
Yiiフレームワーク公式ガイドブックシリーズ32-キャッシュ:ダイナミックコンテンツ(Dynamic Content)
にある Yii でキャッシュを使用するには、主にアプリケーションコンポーネントの構成とアクセスが含まれます.次のアプリケーション構成は1つに2つ使用するように設定されています. memcache サーバのキャッシュコンポーネント.
array(
......
'components'=>array(
......
'cache'=>array(
'class'=>'system.caching.CMemCache',
'servers'=>array(
array('host'=>'server1', 'port'=>11211, 'weight'=>60),
array('host'=>'server2', 'port'=>11211, 'weight'=>40),
),
),
),
);
アプリケーションが実行されると、キャッシュコンポーネントは
Yii::app()->cache
にアクセスします.Yiiは、異なるメディアにキャッシュデータを格納できる異なるキャッシュコンポーネントを提供する.たとえば、 CMemCache コンポーネントはPHPのmemcache拡張をカプセル化し、メモリをキャッシュストレージメディアとして使用します. CApcCache コンポーネントはPHP APC拡張をカプセル化した.そして CDbCache コンポーネントは、キャッシュされたデータをデータベースに格納します.使用可能なキャッシュ・コンポーネントのリストを次に示します.
Yii::app()->cache->get($key)
を使用できます. 心配なくデータクリップを取得 Yii::app()->cache
おそらく null
.このコンポーネントはバージョン1.0.5からサポートされています.ヒント: これらのキャッシュコンポーネントはすべて同じベースクラスから継承されるため CCacheは、キャッシュを使用するコードを変更することなく、別のキャッシュの使用方法に切り替えることができます.
キャッシュは、異なるレベルで使用できます.最下位レベルでは、キャッシュを使用して変数などの単一のデータクリップを格納します. データキャッシュ(data caching).次のレベルでは、ビュースクリプトの一部から生成されたページクリップをキャッシュに格納します.最高レベルでは、ページ全体をキャッシュに格納し、必要に応じて取り戻します.
次のセクションでは、これらのレベルでキャッシュを使用する方法について詳しく説明します.
注意: 定義に従って、キャッシュは不安定なストレージメディアです.タイムアウトがなくても、キャッシュ・データが必ず存在することは保証されません.したがって、キャッシュを永続メモリとして使用しないでください.(たとえば、キャッシュストレージを使用しない Session )を参照してください.
キャッシュシリーズの記事:
Yiiフレームワーク公式ガイドシリーズ29——キャッシュ:データキャッシュ
Yiiフレームワーク公式ガイドブックシリーズ30-キャッシュ:フラグメントキャッシュ(Fragment Caching)
Yiiフレームワーク公式ガイドシリーズ31-キャッシュ:ページキャッシュ
Yiiフレームワーク公式ガイドブックシリーズ32-キャッシュ:ダイナミックコンテンツ(Dynamic Content)