yii 2キャッシュ

2336 ワード

1、Yiiフレームのキャッシュ
主に「memcache」と「cache」の2種類です
Yiiの自己キャッシュはすべてCCacheクラスを継承しており,使用上はほとんど区別がない.
2、使い方
(1)configプロファイルmain.phpファイルで次のコードを構成します.
'cache' => array (
            'class' => 'system.caching.CFileCache',
            'directoryLevel'=>'2',
        ),
        'memcache' => array(
            'class'=>'system.caching.CMemCache',
            'servers'=>array(
                array('host'=>'localhost', 'port'=>11211, 'weight'=>60),
            ),
        )

(2)「memcache」の使い方
キャッシュベースクラスCCacheは、set()メソッドとget()メソッドの2つの最も一般的なメソッドを提供します.
$valueという変数の値をキャッシュし、1つの変数に書き込む必要があります.
書き方:
             Yii::app()->memcache ->set($key, $value, $expire);//キャッシュ変数$keyに$expire=30を書き込む
             Yii::app()->memcache ->get($key);//キャッシュ変数$keyを取得
             Yii::app()->memcache ->deleteValue($key);//キャッシュ変数$keyの削除
         
  $menus = Yii::app()->memcache->get('menus');
        if($menus === false){
            $menus = EnNewsType::model()->findAllByAttributes(array(),array('condition'=>'type_id != 6 and  status=1','order'=>'update_time DESC'));
            Yii::app()->memcache->set('menus',$menus,$defult_cache); //$defult_cache = 15*60;
        }

(3)「cache」の使い方
             $value=Yii::app()->cache->get($id);  
             if($value===false)  {
//キャッシュに見つからなかったので$valueを再生成
             //Yii::app()->cache->set($id,$value,30);  
             }
説明:1、キャッシュされた変数がIDを選択する場合、そのIDがアプリケーションで一意であることを確認する.
2、キャッシュからキャッシュ値を削除するにはdelete()を呼び出します.
3、すべてのキャッシュを空にするにはflush()を呼び出します.//flush()を呼び出すときは、他のアプリケーションのキャッシュも空になるので注意してください.
(CCacheはArrayAccessインタフェースを実現しているので、配列のようにキャッシュコンポーネントを使用することができます)
  • $cache=Yii::app()->cache;  
  • $cache['var1']=$value1;//相当:$cache->set('var 1',$value 1);  
  • $value2=$cache['var2'];//相当:$value 2=$cache->get('var 2');