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缓存的更多相关文章

  1. Yii2.0数据库缓存依赖发布的使用理解

    对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍 ...

  2. thinkphp5.0 cache缓存机制

    首先引用缓存文件 use think\Cache; public function index(){ $data = Cache::get('showw');//去缓存 if($data){ echo ...

  3. Yii2.0 两次奇葩的数据库连接经历

    经历一: 公司的项目经过阿里云的ECS升级后,发现在Yii2.0框架中,凡是数据库新增的字段(当然相关的表模型肯定是加了相应字段的),老是报“属性找不到”的问题,最后排查是数据库连接的问题.把127. ...

  4. 【Yii系列】Yii2.0基础框架

    缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是它的作者是华人,这才是让我 ...

  5. Yii2.0

    Yii2.0基础框架   缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是 ...

  6. Yii2.0基础框架

    前言:最近在用php写一个项目的接口,所以需要学习一下Yii的框架,也在这里记录一下. 整体结构 ssets文件夹:assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问p ...

  7. yii2.0 删除文件夹

    /** * 删除文件缓存 */public function actionDelfilecache(){ $cachePath = Yii::getAlias('@app/runtime/cache' ...

  8. yii2.0归档安装方法

    我前几天用composer安装 一直没成功  我就用归档的方法安装了  所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...

  9. 注释驱动的 Spring cache 缓存介绍

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

随机推荐

  1. winform基本控件----按钮

    这次来引用一个我们上课时候老师给的一个实验内容,来说一下winform程序设计中的按钮控件的使用.下面是我们老师给的实验内容. 实验目的: 掌握Winform的开发环境. 掌握窗体的创建和基本方法. ...

  2. SSIS 目录

    微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 目录 上一篇讲解了使用SSIS参数与环境,由于涉及到了SSIS目录的相关知识和概念,本篇将对其进行讲解. 注:在之前的版本中,是使用整 ...

  3. 通过List<String>动态传递参数给 sqlcommand.Parameters

    通过List<String>动态传递参数 private void GetallChecked_TreeNote(TreeNodeCollection aNodes, ref int To ...

  4. Java Socket网络编程的经典例子(转)

    事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作.Socket ...

  5. angular.js ng-class-even ng-class-odd ng-cloak(没啥技术含量)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. centos7编译安装pure-ftpd-1.0.42

    一.下载 wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.gz 二.安装 tar xvf ...

  7. 在linux下python爬虫进程发生异常时自动重启直至正常结束的方法

    之前在做爬虫的时候遇到一种情况,当网络情况不太好的时候,爬虫爬到的链接在urlopen时会因为无法正常连接而报URLError或者timeout的错误导致陈序报错而终止:但是这些错误在重新运行陈序后能 ...

  8. c#深拷贝

    /// <summary> /// 对象拷贝 /// </summary> /// <param name="obj">被复制对象</pa ...

  9. Crt单元

    一.调用单元例:uses crt; 二.清屏例:clrscr; 三.移动光标例:gotoxy(a,b);其中a表示列号,b表示行号 四.清行例:clreol;清除光标所在行光标上及以后的所有字符 五. ...

  10. [IIS]IIS扫盲(五)

    第二篇 IIS之FTP服务器 一.建立你的FTP站点 第一个FTP站点(即“默认FTP站点”)的设置方法和更多FTP站点的建立方法请参照前文Web服务器中相关操作执行.需要注意的是,如果你要用一个IP ...