Yiiフレームワークの一般的なキャッシュアプリケーションインスタンスのまとめ

2545 ワード

この例では、Yiiフレームワークの一般的なキャッシュアプリケーションについて説明します.皆さんの参考にしてください.具体的には以下の通りです.
1まず、apc or memcache or redisをインストールする必要があります.インストールが完了したら.redisを例にとります.どのようにインストールするかについては、お嬢さんを探してください.
コンフィギュレーションファイルにcomponentsを次のように追加します.

'cache'=>array(
  'class'=>'core.extensions.redis.Predis',
     'class'=>'core.extensions.redis.CRedisCache',
     'servers'=>array(
      array(
        'host'=>'192.168.1.xx',
        'port'=>6379,
       ),
      ),
    ),


2最も簡単な例.set get.

Yii::app()->cache->set('id', date("Y-m-d H:i:s"), 5); //       5.
echo Yii::app()->cache->get("id")."
"; sleep(2); echo Yii::app()->cache->get("id"); // sleep(4); echo Yii::app()->cache->get("id"); // ,

3データベース・クエリー・キャッシュ.

//3.1          。
$sql = 'select * from {{settings}}';
$cmd = Yii::app()->db->cache(10, null)->createCommand($sql);
$rows = $cmd->queryAll();
//3.2           。
$dp_sql = "SELECT MAX(id) FROM plat2_settings ";
$dependency = new CDbCacheDependency( $dp_sql );
$sql  = "SELECT * FROM `plat2_settings`";
$rows = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll();


上のコードが対応するデータを検索するという意味の場合、まず検索SELECT MAX(id)FROM plat 2_に依存すると判断しますsettingsの結果データが更新されたかどうか、
更新がある場合は、データを再問合せし、更新がない場合はデータを直接キャッシュします.1000秒後に再照会されます.
4チップキャッシュ.

if($this->beginCache("xx"))
{
  echo "test cache ";
  $this->endCache();
}
//beginCache         ,           。            ,    。


5ページキャッシュ.

public function filters(){
  return array(
    array(
      'COutputCache+index+admin',
      'duration' => 120,
      'varyByParam'=>array('id'),
    ),
  );
}


コントローラを使用して、指定したactionを直接キャッシュ処理します.
また、varyBySessionはオプションです.
Yiiの関連内容についてもっと興味のある読者は、「Yiiフレームワーク入門及び常用技術総括」、「php優秀開発フレームワーク総括」、「smartyテンプレート入門基礎教程」、「php対象プログラム設計入門教程」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
本稿では,Yiiフレームワークに基づくPHPプログラムの設計に役立つことを期待する.