ホームページ  >  記事  >  バックエンド開発  >  Yii Framework 公式ガイド シリーズ 28 - キャッシング: 概要

Yii Framework 公式ガイド シリーズ 28 - キャッシング: 概要

黄舟
黄舟オリジナル
2017-02-15 09:13:541088ブラウズ



キャッシュは、Web アプリケーションのパフォーマンスを向上させる簡単かつ効果的な方法です。比較的静的なデータをキャッシュに保存し、リクエストの受信時にそれを取得することで、このデータの生成に必要な時間を節約します。

Yii でのキャッシュの使用には、主にアプリケーションコンポーネントの設定とアクセスが含まれます。 次のアプリケーション構成では、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::app()->cache 访问。

Yii 提供了不同的缓存组件,可以将缓存数据存储到不同的媒介中。例如, CMemCache 组件封装了 PHP 的 memcache 扩展并使用内存作为缓存存储媒介。 CApcCache 组件封装了 PHP APC 扩展; 而 CDbCache 组件会将缓存的数据存入数据库。下面是一个可用缓存组件的列表:

  • CMemCache: 使用 PHP memcache 扩展.

  • CApcCache: 使用 PHP APC 扩展.

  • CXCache: 使用 PHP XCache 扩展。注意,这个是从 1.0.1 版本开始支持的。

  • CEAcceleratorCache: 使用 PHP EAccelerator 扩展.

  • CDbCache: 使用一个数据表存储缓存数据。默认情况下,它将创建并使用在 runtime 目录下的一个 SQLite3 数据库。 你也可以通过设置其 connectionID 属性指定一个给它使用的数据库。

  • CZendDataCache: 使用 Zend Data Cache 作为后台缓存媒介。注意,这个是从 1.0.4 版本开始支持的。

  • CFileCache: 使用文件存储缓存数据。这个特别适合用于存储大块数据(例如页面)。注意,这个是从 1.0.6 版本开始支持的。

  • CDummyCache: 目前 dummy 缓存并不实现缓存功能。此组件的目的是用于简化那些需要检查缓存可用性的代码。 例如,在开发阶段或者服务器尚未支持实际的缓存功能,我们可以使用此缓存组件。当启用了实际的缓存支持后,我们可以切换到使用相应的缓存组件。 在这两种情况中,我们可以使用同样的代码Yii::app()->cache->get($key) 获取数据片段而不需要担心 Yii::app()->cache 可能会是 null

    Yii は、キャッシュされたデータをさまざまなメディアに保存できるさまざまなキャッシュ コンポーネントを提供します。たとえば、CMemCache コンポーネントは PHP の memcache 拡張機能をカプセル化し、メモリをキャッシュ記憶媒体として使用します。 CApcCache コンポーネントは PHP APC 拡張機能をカプセル化し、CDbCache コンポーネントはキャッシュされたデータをデータベースに保存します。利用可能なキャッシュ コンポーネントのリストは次のとおりです:
    CMemCache: PHP memcache 拡張機能を使用します。

  • CApcCache: PHP APC 拡張機能を使用します。
  • CXCache: PHP XCache 拡張機能を使用します。これはバージョン 1.0.1 からサポートされることに注意してください。

  • CEAcceleratorCache: PHP EAccelerator 拡張機能を使用します。

  • CDbCache: データ テーブルを使用してキャッシュされたデータを保存します。デフォルトでは、ランタイム ディレクトリに SQLite3 データベースが作成され、使用されます。 connectionID プロパティを設定することで、使用するデータベースを指定することもできます。

  • CZendDataCache: Zend Data Cache をバックエンド キャッシュ メディアとして使用します。これはバージョン 1.0.4 以降でサポートされることに注意してください。
  • CFileCache: ファイルを使用してキャッシュ データを保存します。これは、大きなデータの塊 (ページなど) を保存する場合に特に便利です。これはバージョン 1.0.6 以降でサポートされることに注意してください。

  • CDummyCache: 現在、ダミーキャッシュにはキャッシュ機能が実装されていません。このコンポーネントの目的は、キャッシュの可用性を確認する必要があるコードを簡素化することです。 たとえば、このキャッシュ コンポーネントは、開発段階中、またはサーバーが実際のキャッシュ機能をまだサポートしていないときに使用できます。実際のキャッシュ サポートが有効になっている場合は、対応するキャッシュ コンポーネントの使用に切り替えることができます。 どちらの場合も、同じコード Yii::app()->cache->get($key) を使用して、Yii: :app を気にせずにデータ フラグメントを取得できます。 ()->cachenull である可能性があります。このコンポーネントはバージョン 1.0.5 以降でサポートされています。

    ヒント:

    これらすべてのキャッシュ コンポーネントは同じ基本クラス CCache から継承しているため、キャッシュを使用するコードを変更せずに別のキャッシュ メソッドに切り替えることができます。

    キャッシュはさまざまなレベルで使用できます。最下位レベルでは、変数などの個々のデータを保存するためにキャッシュを使用します。これを
    データ キャッシュ

    と呼びます。次のレベルでは、ビュー スクリプトの一部として生成されたページ フラグメントをキャッシュに保存します。 そして最も高いレベルでは、ページ全体をキャッシュに保存し、必要に応じて取得します。 🎜🎜次のいくつかのセクションでは、これらのレベルでキャッシュを使用する方法を詳しく説明します。 🎜🎜🎜🎜注:🎜 定義上、キャッシュは不安定な記憶媒体です。タイムアウトがない場合でも、キャッシュされたデータが存在することは保証されません。 したがって、キャッシュを永続ストレージとして使用しないでください。 (たとえば、セッション データを保存するためにキャッシュを使用しないでください)。 🎜🎜🎜キャッシュシリーズの記事: 🎜🎜Yii Framework 公式ガイド シリーズ 29 - キャッシュ: データ キャッシュ 🎜🎜Yii Framework 公式ガイド シリーズ 30 - キャッシュ: フラグメント キャッシュ 🎜🎜Yii Framework 公式ガイド シリーズ 31 - キャッシュ : ページ キャッシュ🎜🎜Yii Framework 公式ガイド シリーズ 32 - キャッシュ: 動的コンテンツ (動的コンテンツ)🎜🎜上記は Yii Framework 公式ガイド シリーズ 28 - キャッシュ: 概要の内容です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www .php) をご覧ください。 .cn)! 🎜🎜🎜🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。