[moka同学笔记]yii2.0缓存
1.控制器中CacheDemoController.php
<?php
/**
* Created by PhpStorm.
* User: moka同学
* Date: 2016/06/29
* Time: 8:38
*/
namespace app\controllers; use yii\web\Controller; class CacheDemoController extends Controller
{
/* public function behaviors()
{
return [
[
'class'=>'yii\filters\HttpCache',
'lastModified'=>function(){
return 124234;
},
'etagSeed'=>function(){
return 'etagseed23';
}
]
];
}*/ public function actionIndex(){
//echo 'hello';die();
$cache =\Yii::$app->cache;
$data = $cache->get('key');
if(!$data){
$data = "h33e55533lo";
$cache->set('key',$data,15);//保存缓存
//$data=$cache->get('key');
}
return $this->render('index2', [
'records' => $data,
]);
} public function actionIndex3()
{
//$res = \YII::$app->response;
//Example 1 状态码
//设置状态码 :$res->statusCode = '404';
/*
//对http头部的处理
$res->headers->add('pragma','no-cache'); //添加pragma
$res->headers->set('pragma','max-age-5'); //设置pragma的值为max-age-5
$res->headers->remove('pragma'); // 移除pragma的头部*/ //跳转
//$res->headers->add('location','http://www.baidu.com');
//$res->headers->add('content-disposion','attachment'); #----------------------------------------------------------------- //Example one
//缓存技术
//Ⅰ第一步 获取缓存组件
$cache = \Yii::$app->cache; /* //Ⅱ 第二步 往缓存中写数据
$cache->add('key1','hello world!'); //Ⅳ 修改缓存数据
// $cache->set('key1','hello world2'); //Ⅴ 删除缓存数据
$cache->delete('key1'); // Ⅵ 清空数据
$cache->flush();*/ //Ⅶ 设置缓存的有效期
//方法一
//$cache->add('key1','hello world',5);//缓存保存三秒
//方法二
//$cache->set('key1','hello world',5);//缓存设置3秒 //Ⅲ 第三步 读取缓存中的数据
//$data = $cache->get('key1');
//print_r($data);
//var_dump($data); //DB依赖
/* $dependency = new \yii\caching\DbDependency(
['sql'=>'SELECT COUNT(*) FROM test']
);
$cache->add('db_key','hello world6',3,$dependency);
var_dump($cache->get('db_key'));*/ // 案例
$data = $cache->get('cache_data_key');
if ($data === false) {
//这里我们可以操作数据库获取数据,然后通过$cache->set方法进行缓存
$cacheData = 'he3443o' ;
//set方法的第一个参数是我们的数据对应的key值,方便我们获取到
//第二个参数即是我们要缓存的数据
//第三个参数是缓存时间,如果是0,意味着永久缓存。默认是0
$cache->set('cache_data_key', $cacheData, 13);
$data = $cache->get('cache_data_key');
} return $this->render('index2', [
'records' => $data,
]); }
}
2.视图view/cache-demo/index.php 后边为index2
<div class="container">
<?php
/**
* Created by PhpStorm.
* User: moka同学
* Date: 2016/06/27
* Time: 11:00
*/
?>
<?php
if($this->beginCache('cache')){
?>
<div id="cache">
这里有缓存片段werwe
</div>
<?php
$this->endCache();
}
?>
<div id="no-cache">
这里没有缓存片段ertre
</div>
</div>
index2.php
<div class="container">
<?php
echo $records;
?>
</div>
index3.php
<div class="container">
<?php
echo $new;
?>
</div>
注:~
转载请注明出处。QQ1727728211
[moka同学笔记]yii2.0缓存的更多相关文章
- [moka同学笔记]yii2.0查询数据库
一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all() 二. [id=1] 选 ...
- [moka同学笔记]Yii2.0 modal的使用
第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...
- [moka同学笔记]yii2.0数据库操作以及分页
1.model中models/article.php 1 <?php 2 3 namespace app\models; 4 5 use Yii; 6 7 /** 8 * This is the ...
- [moka同学笔记]Yii2.0验证码
1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...
- [moka同学笔记]yii2.0表单的使用
1.创建model /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...
- [moka同学笔记]yii2.0小物件的简单使用(第二种方法)
1.在widgets/TestWidget.php中 <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * T ...
- [moka同学笔记]yii2.0小物件的简单使用(第一种方法)
这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...
- [moka同学笔记]Yii2.0显示页匿名函数设置$value
匿名函数设置$value <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // ['cl ...
- [moka同学笔记]Yii2.0给一张表中增加一个属性
1.model中建立关联 public function getUser(){ return$this->hasOne(User::className(),['id'=>'uid']) ; ...
随机推荐
- System.Diagnostics.Stopwatch
System.Diagnostics.Stopwatch 注意:此类在 .NET Framework 2.0 版中是新增的.MSDN Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量 ...
- 【转】 IOS开发xcode报错之has been modified since the precompiled header was built
本文转载自 IOS开发xcode报错之has been modified since the precompiled header was built 其实我是升级xcode到4.6.3的时候遇到的 ...
- 安卓Android面试题大全
56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...
- C代码中如何调用C++ C++中如何调用C
注意这里的C调用C++或者C++调用C意思是.c文件中调用.cpp文件中代码,或者相反. 集成开发环境如VC++6.0或者vs都是以文件后缀来区别当前要编译的是C代码还是C++代码,然后采用响应的编译 ...
- maven快照版本和发布版本
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...
- Qt编写自定义控件插件路过的坑及注意事项
在一日一控件的口号下,终于写好了五十几个自定义控件,包括各种仪表盘,各种温度计,各种进度条,各种按钮等,具体可参见(http://www.cnblogs.com/feiyangqingyun/p/61 ...
- c++ 全局变量初始化的一点总结
注意:本文所说的全局变量指的是 variables with static storage,措词来自 c++ 的语言标准文档. 什么时候初始化 根据 C++ 标准,全局变量的初始化要在 main 函数 ...
- MyBatis知多少(18)MyBatis系统
小型.简单系统 小型应用程序通常只涉及单个数据库,只有一些相当简单的用户界面和领域模型.它的业务逻辑非常简单,甚至对一些简单的CRUD (Create, Read, Update, Delete:增删 ...
- storm分组模式
Shuffle grouping: Tuples被随机分配到每一个bolt’s task,以便于每一个bolt’s task获得相同数量的tuples. Fields grouping: Stream ...
- Android之startActivityForResult的使用
在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A ...