[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']) ; ...
随机推荐
- JMir——Java版热血传奇2之资源文件与地图
我虽然是90后,但是也很喜欢热血传奇2(以下简称“传奇”)这款游戏. 进入程序员行业后自己也对传奇客户端实现有所研究,现在将我的一些研究结果展示出来,如果大家有兴趣的话不妨与我交流. 项目我托管到co ...
- 7个惊艳的HTML5 Canvas动画效果及源码
HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来 ...
- c++中两个类互相引用的问题
最近在改一个C++程序的时候碰到一条警告信息,警告信息为:“ 删除指向不完整“Q2DTorusNode”类型的指针:没有调用析构函数 1> c:\users\lxw ...
- 一张Windows版本发展图——纪念XP服役13你年
88年的人,接触PC十几年.第一次真正开始学习PC是在小学四年级的电脑兴趣班上,那时候好多事情还历历在目.那些年,神秘的DOS,向里面输入一些自己都不懂得命令,出现的场景让一个少年内心砰砰直跳.一个& ...
- 导出 C/C++ API 给 Lua 使用[转]
导出 C/C++ API 给 Lua 使用 cocos2d-x 和 quick-cocos2d-x 的底层代码都是使用 C++ 语言开发的.为了使用 Lua 脚本语言进行开发,我们利用 tolua ...
- Groovy split竖杆注意
前几天将09年写的一个Asp程序使用Grails改造重写,在处理手机号码Split的时候,Asp代码: dim phoneArr phoneArr = split(phones,"|&quo ...
- npm 发布包
每个包都必须包含package.json配置文件 生成package.page文件 1.到项目目录下执行npm init根据提示输入即可 最后记得要yes 完成项目后就是要发布到npm了 首先需要有n ...
- 免费国内外"代码托管服务器"收集
国内 开源中国 http://git.oschina.net/ 支持git 淘宝code http://code.taobao.org/ 支持svn 京东code https://cod ...
- Oracle数据库入门——常用的数据字典
一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图 ...
- ZOJ 2753 Min Cut (Destroy Trade Net)(无向图全局最小割)
题目大意 给一个无向图,包含 N 个点和 M 条边,问最少删掉多少条边使得图分为不连通的两个部分,图中有重边 数据范围:2<=N<=500, 0<=M<=N*(N-1)/2 做 ...