yii2.0 Cache缓存
1.控制器中CacheDemoController.php

1 <?php
2 /**
3 * Created by PhpStorm.
4 * User: liangzi
5 * Date: 2016/11/25
6 * Time: 8:38
7 */
8 namespace app\controllers;
9
10 use yii\web\Controller;
11
12 class CacheDemoController extends Controller
13 {
14 /* public function behaviors()
15 {
16 return [
17 [
18 'class'=>'yii\filters\HttpCache',
19 'lastModified'=>function(){
20 return 124234;
21 },
22 'etagSeed'=>function(){
23 return 'etagseed23';
24 }
25 ]
26 ];
27 }*/
28
29 public function actionIndex(){
30 //echo 'hello';die();
31 $cache =\Yii::$app->cache;
32 $data = $cache->get('key');
33 if(!$data){
34 $data = "h33e55533lo";
35 $cache->set('key',$data,15);//保存缓存
36 //$data=$cache->get('key');
37 }
38 return $this->render('index2', [
39 'records' => $data,
40 ]);
41 }
42
43 public function actionIndex3()
44 {
45 //$res = \YII::$app->response;
46 //Example 1 状态码
47 //设置状态码 :$res->statusCode = '404';
48 /*
49 //对http头部的处理
50 $res->headers->add('pragma','no-cache'); //添加pragma
51 $res->headers->set('pragma','max-age-5'); //设置pragma的值为max-age-5
52 $res->headers->remove('pragma'); // 移除pragma的头部*/
53
54 //跳转
55 //$res->headers->add('location','http://www.baidu.com');
56 //$res->headers->add('content-disposion','attachment');
57
58 #-----------------------------------------------------------------
59
60 //Example one
61 //缓存技术
62 //Ⅰ第一步 获取缓存组件
63 $cache = \Yii::$app->cache;
64
65 /* //Ⅱ 第二步 往缓存中写数据
66 $cache->add('key1','hello world!');
67
68 //Ⅳ 修改缓存数据
69 // $cache->set('key1','hello world2');
70
71 //Ⅴ 删除缓存数据
72 $cache->delete('key1');
73
74 // Ⅵ 清空数据
75 $cache->flush();*/
76
77 //Ⅶ 设置缓存的有效期
78 //方法一
79 //$cache->add('key1','hello world',5);//缓存保存三秒
80 //方法二
81 //$cache->set('key1','hello world',5);//缓存设置3秒
82
83
84 //Ⅲ 第三步 读取缓存中的数据
85 //$data = $cache->get('key1');
86 //print_r($data);
87 //var_dump($data);
88
89 //DB依赖
90 /* $dependency = new \yii\caching\DbDependency(
91 ['sql'=>'SELECT COUNT(*) FROM test']
92 );
93 $cache->add('db_key','hello world6',3,$dependency);
94 var_dump($cache->get('db_key'));*/
95
96
97 // 案例
98 $data = $cache->get('cache_data_key');
99 if ($data === false) {
100 //这里我们可以操作数据库获取数据,然后通过$cache->set方法进行缓存
101 $cacheData = 'he3443o' ;
102 //set方法的第一个参数是我们的数据对应的key值,方便我们获取到
103 //第二个参数即是我们要缓存的数据
104 //第三个参数是缓存时间,如果是0,意味着永久缓存。默认是0
105 $cache->set('cache_data_key', $cacheData, 13);
106 $data = $cache->get('cache_data_key');
107 }
108
109 return $this->render('index2', [
110 'records' => $data,
111 ]);
112
113
114 }
115 }

2.视图view/cache-demo/index.php 后边为index2

1 <div class="container">
2 <?php
3 /**
4 * Created by PhpStorm.
5 * User: liangzi
6 * Date: 2016/11/25
7 * Time: 11:00
8 */
9 ?>
10 <?php
11 if($this->beginCache('cache')){
12 ?>
13 <div id="cache">
14 这里有缓存片段werwe
15 </div>
16 <?php
17 $this->endCache();
18 }
19 ?>
20 <div id="no-cache">
21 这里没有缓存片段ertre
22 </div>
23 </div>

index2.php
1 <div class="container">
2 <?php
3 echo $records;
4 ?>
5 </div>
index3.php
1 <div class="container">
2 <?php
3 echo $new;
4 ?>
5 </div>
yii2.0 Cache缓存的更多相关文章
- Yii2.0数据库缓存依赖发布的使用理解
对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍 ...
- thinkphp5.0 cache缓存机制
首先引用缓存文件 use think\Cache; public function index(){ $data = Cache::get('showw');//去缓存 if($data){ echo ...
- Yii2.0 两次奇葩的数据库连接经历
经历一: 公司的项目经过阿里云的ECS升级后,发现在Yii2.0框架中,凡是数据库新增的字段(当然相关的表模型肯定是加了相应字段的),老是报“属性找不到”的问题,最后排查是数据库连接的问题.把127. ...
- 【Yii系列】Yii2.0基础框架
缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是它的作者是华人,这才是让我 ...
- Yii2.0
Yii2.0基础框架 缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是 ...
- Yii2.0基础框架
前言:最近在用php写一个项目的接口,所以需要学习一下Yii的框架,也在这里记录一下. 整体结构 ssets文件夹:assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问p ...
- yii2.0 删除文件夹
/** * 删除文件缓存 */public function actionDelfilecache(){ $cachePath = Yii::getAlias('@app/runtime/cache' ...
- yii2.0归档安装方法
我前几天用composer安装 一直没成功 我就用归档的方法安装了 所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...
- 注释驱动的 Spring cache 缓存介绍
概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...
随机推荐
- JDBC使用步骤
JDBC编程步骤 加载驱动程序:Class.forName(driverClass) 加载Mysql驱动:Class.forName("com.mysql.jdbc.Driver" ...
- TextView与Html相结合的具体方法?
TextView与Html相结合的具体方法? android教程之textview解析带图片的html示例 Android中的TextView,本身就支持部分的Html格式标签.这其中包括常用的字体大 ...
- Ubuntu16.04安装配置Eclipse 以及opencv的使用
安装配置http://www.oracle.com下载与自己电脑系统对应的JDK.我下载的是jdk-8u101-linux64.tar.gz 解压:sudo tar -zxvf jdk-8u101-l ...
- str转unsigned int
用法 1 参数:参数类型为char, 十六进制字符串形式:0X××××××[NUT],十进制字符串形式:×××××××[NUT],字符串的最大长度为16,字符串结尾符必须为ascii码值0(NUT). ...
- NBU恢复报:ORA-19554 ORA-27211
RMAN> run {2> allocate channel ch00 type 'sbt_tape' parms='ENV=(NB_ORA_CLIENT=rac1)';3> res ...
- JavaScript list 去重复
function unique(arr) { var result = [], hash = {}; for (var i = 0, elem; (elem = arr[i]) != null; i+ ...
- java 单例设计模式
1.饿汉单例设计模式: 步骤 : 1.定义一个私有的静态成员变量来引用对象(私有的静态对象),设置对象唯一. 2.私有化构造方法,防止new对象. 3.创建一个公开的静态方法,返回上面的 ...
- [Linux]删除7天前的目录
find /ftp_data/ -mindepth 2 -type d -mtime +7 -exec rm -rf {} \;
- 使用Java修改Windows注册表
使用Java修改Windows注册表,使用最基本的就是cmd命令. 事例和运行结果如下所示: package day01; import java.io.IOException; /* 1,reg a ...
- MC的一些具体的应用的例子的总结
任何东西,都有其适用的场景,在合适的场景下,才能发挥好更大的作用. 对于memcached,使用内存来存取数据,一般情况下,速度比直接从数据库和文件系统读取要快的多. memcached的最常用的场景 ...