yii 2キャッシュ
2336 ワード
1、Yiiフレームのキャッシュ
主に「memcache」と「cache」の2種類です
Yiiの自己キャッシュはすべてCCacheクラスを継承しており,使用上はほとんど区別がない.
2、使い方
(1)configプロファイルmain.phpファイルで次のコードを構成します.
(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の削除
(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');
主に「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インタフェースを実現しているので、配列のようにキャッシュコンポーネントを使用することができます)