高效
1、缓存
//获取缓存组件
$cache = Yii::$app->cache;
//往缓存中写数据
$cache ->add('key1','hello world');
$cache ->add('key1','hello world2');
//修改缓存 可以设置
$cache->set('key1','hello world');
$cache->set('key1','hello world2');
//读取缓存
$data = $cache ->get('key1');
//删除数据
$data = $cache->delete('key1');
//清空数据
$cache->flush();
$data = $cache->get('key1');
//缓存有效期
$cache->add('key','hello world',5);
$cache->set('key','hello world',5);
echo $cache->get('key');
var_dump($data);
1、文件缓存
//文件依赖 修改文件缓存失效
$dependency = new \yii\caching\FileDependency(['fileName'=>'hw.txt']);
$cache->add('file_key2','hello world',3000, $dependency);
2、表达式缓存
先产生缓存,再更改参数、
//表达式依赖
view-source:http://www.blog.com/index.php?r=hello/index&name=zhangsan
//修改参数失效
$dependency = new \yii\caching\ExpressionDependency(['expression'=>'Yii::$app->request->get("name")']);
$cache->add('expression_key','hello world',3000,$dependency);
var_dump($cache->get('expression_key'));
3、DB依赖
SQL查询返回的结果发生变化,缓存过期
//DB依赖
$dependency = new \yii\caching\DbDependency(['sql'=>'SELECT count(*) from yii.orders']);
$cache->add('db_key','hello world',3000,$dependency);
var_dump($cache->get('db_key'));
4、页面缓存
在控制器中:
一、behavior先于其他操作执行
public function behaviors()
{
return [
[
'class' => 'yii\filters\PageCache'
]
];
}
public function actionIndex()
{
echo '3';
}
二、缓存-文件依赖
public function behaviors()
{
return [
[//文件依赖
'class' => 'yii\filters\PageCache',
'duration' => 1000,
'dependency' => [
'class' =>'yii\caching\FileDependency',
'fileName' => 'hw.txt'
]
]
];
}
public function actionIndex()
{
echo '4';
}
三、指定操作缓存
public function behaviors()
{
return [
[//文件依赖
'class' => 'yii\filters\PageCache',
'duration' => 1000,
//'only' => ['index'],
'only' => ['index','test'],
'dependency' => [
'class' =>'yii\caching\FileDependency',
'fileName' => 'hw.txt'
]
]
];
}
public function actionIndex()
{
echo '6';
}
public function actionTest()
{
echo '7';
}