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),而是一个对缓存使 ...
随机推荐
- GridView使用自带分页功能时分页方式及样式PagerStyle
// 转向地址:http://www.bubuko.com/infodetail-412562.html GridView分页,使用自带分页功能,类似下面样式: 在aspx页面中,GridView上的 ...
- SSIS 基础知识
微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 基础知识 SSIS 介绍 SSIS - SQL Server Integration Services 是用于实现企业级数据集成和数据 ...
- Asp.net MVC 之异常处理
对于Asp.Net MVC 项目中,对于异常情况下,会跳转到自己定义好的页面,这时就用到了MVC中的异常过滤器(Exception Filters) (1)一旦action 方法中出现异常,异常过滤器 ...
- common.support.percent.PercentFrameLayout.onLayout(PercentFrameLayout.java:151)
08-29 20:01:47.402 18908-19364/com.tongyan.subway.inspect E/CrashHandler: java.lang.NullPointerExcep ...
- metaspace之三--Metaspace解密
概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所致,看到 ...
- c#数据类型之值类型和引用类型
C#数据类型分隔为值类型和引用类型.而所用数据类型都继承自Object. 1. 值类型继承自System.ValueType,引用类型继承自System.Object.ValueType也直接继承自O ...
- ACM博弈知识汇总(转)
博弈知识汇总 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻 ...
- 无法连接远程SQL Server 数据库的原因
1. tcp协议开启 2. 1433端口是否添加防火墙例外
- 关于listview的一些属性
由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表 首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你 ...
- dedecms代码研究二
dedecms代码研究(2)从index开始现在继续,今天讲的主要是dedecms的入口代码.先打开index.PHP看看里面是什么吧.打开根目录下的index.php嗯映入眼帘的是一个if语句.检查 ...