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),而是一个对缓存使 ...
随机推荐
- 黄聪:说说JSON和JSONP,也许你会豁然开朗(转)
前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...
- c# 高效率导出多维表头excel
[DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThread ...
- 001_JavaScript 错误 - Throw、Try 和 Catch
try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 错误一定会发生 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误: 可能是 ...
- 如何用pdb进行python调试
本文章讲述了如何用pdb进行python调试讲解. 当手边 没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试) 参 考:http://docs.python.org/l ...
- ORACLE 创建作业JOB例子
--1.plsql中学习job --学习job --建表 create table test_job(para_date date); commit; insert into test ...
- JAVA设计模式之解释器模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个 ...
- 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组
来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法: 或者 其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简 ...
- IMX6下移植WKxxx驱动
wkXXX.c #include<linux/init.h> #include <linux/module.h> #include <linux/kernel.h> ...
- DOCTYPE 中xhtml 1.0和 html 4.01区别分析
前者相对于后者有以下特性: 1.所有的标记都都要闭合 所有的标记都要闭合,如果是单独不成对的标签,在标签最后加一个"/"来关闭它.例如: <h6>close tag & ...
- 根据某个文件或文件夹自制rpm包
首先安装打包软件# yum install rpmbuild rpmdevtools -y 生成打包路径1.使用rpmdev-setuptree ,会自动在用户家目录生成一个rpmbuild的文件夹 ...