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. Visual Tracker Benchmark

    直接的方法: 首先将代码先拷到benchmark_v1.0/tackers/这个文件夹下,你会发现里面已有好几个算法的代码文件夹了. 这边注意了,我就是这样的,没有注意把代码拷贝进去之后要自己写一个调 ...

  2. require.js+backbone.js基本使用

    一.菜单{ //银行卡基础信息维护 rsId: 'menu.param.cardbin', iconCls: 'icon-double-angle-right', name: menusLang._( ...

  3. case when完成不同条件的显示

    好长时间不写sql了,今天群里问了一个问题: 我想得到的就是  2,3,4,就是低,5,6,7,8,9就是中,10,11....就是高,现在只知道zpcs,怎么得到高中低? case 写的,decod ...

  4. C# using 三种使用方式

    http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html 1.using指令. using 命名空间名字.例如: using Syst ...

  5. 不重启程序使用最新版package

    相信很多使用python者都对reload方法比较熟悉了,通过不间断地reload可以实现某一module的热更新,主要就能在不重启应用的情况下实现部分模块的更新.但这种方法仅限于reload当前工作 ...

  6. 通过SQL语句提取存储过程中的内容

    首先,列出服务器上所有数据库. -- 获取数据库列表 SELECT name FROM master.dbo.sysdatabases ORDER BY name 其次,这是一种让所有的用户从数据库中 ...

  7. 创建sa账号

    ①以windows身份验证的方式默认登陆 ②选择安全性下的登录名中的sa账号,右键选择属性,进行相关项的设置 ③将sa账号的状态中对应的登录项由之前的禁用,改为已启用 ④将sa对应的密码进行修改为自己 ...

  8. Karma 5:集成 Karma 和 Angular2

    集成 Karma 和 Angular2 我们需要做很多工作,由于需要使用 TypeScript 进行开发,首先需要正确配置 Typescript ,然后正确配置对 Angular2 的引用.还要创建 ...

  9. webstrom 2016 破解

    本篇文章经过笔者实验结果,网友均可放心使用 版权声明:本文为博主原创文章,未经博主允许不得转载. 工欲善其事,必先利其器 websrtom作为前端开发神器,现在是越来越多的用户使用.很多小白们下载好了 ...

  10. 树莓派B+上手小记--使用HDMI线连接显示器

    入手还算比较顺利,一开始使用网上下的别人精简的OS,发现ACT及PWR灯一直亮着,上网查说用HDMI连接显示器需要修改配置文件config.txt,但修改后情况依旧. 如果还是用官方的系统试试吧,上网 ...