Yii框架常见缓存应用实例小结
时间:2022-07-27
本文章向大家介绍Yii框架常见缓存应用实例小结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了Yii框架常见缓存应用。分享给大家供大家参考,具体如下:
1 首先,你需要安装apc or memcache or redis 。 安装完后。 以redis 为例。 至于如何安装,多找度娘。
在配置文件中components 添加如下。
'cache'= array(
'class'= 'core.extensions.redis.Predis',
'class'= 'core.extensions.redis.CRedisCache',
'servers'= array(
array(
'host'= '192.168.1.xx',
'port'= 6379,
),
),
),
2 最简单的例子。 set get.
Yii::app()- cache- set('id', date("Y-m-d H:i:s"), 5); //设置有效时间为5.
echo Yii::app()- cache- get("id")."<br/ ";
sleep(2);
echo Yii::app()- cache- get("id"); //缓存有效期内 会输出数据
sleep(4);
echo Yii::app()- cache- get("id"); //缓存失效,输出为空
3 数据库查询缓存。
//3.1 最简单的数据库缓存。
$sql = 'select * from {{settings}}';
$cmd = Yii::app()- db- cache(10, null)- createCommand($sql);
$rows = $cmd- queryAll();
//3.2 加一个缓存依赖的概念。
$dp_sql = "SELECT MAX(id) FROM plat2_settings ";
$dependency = new CDbCacheDependency( $dp_sql );
$sql = "SELECT * FROM `plat2_settings`";
$rows = Yii::app()- db- cache(1000, $dependency)- createCommand($sql)- queryAll();
上面的代码意思是查询对应的数据的时候,会先判断依赖查询 SELECT MAX(id) FROM plat2_settings 的结果数据是否有更新,
如果有更新,则重新查询数据,如依赖未更新则直接调缓存数据。 过1000 秒后,会重新查询。
4 片断缓存。
if($this- beginCache("xx"))
{
echo "test cache ";
$this- endCache();
}
//beginCache 会存在第二个参数,意思是选用指定的缓存器。如果需要使用不同的缓存时,可以定制。
5 页面缓存。
public function filters(){
return array(
array(
'COutputCache+index+admin',
'duration' = 120,
'varyByParam'= array('id'),
),
);
}
使用控制器,直接对指定的action 进行缓存处理 。
还有varyBySession 可以选配。
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
- iOS多线程——你要知道的NSOperation都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
- iOS多线程——你要知道的NSThread都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
- KVO、Delegate、Notification 区别及相关使用场景你要知道的KVC、KVO、Delegate、Notification都在这里
- Core ML简介及实时目标检测及Caffe TensorFlow coremltools模型转换
- iOS网络——NSURLSession详解及SDWebImage源码解析你要知道的NSURLSession都在这里
- BZOJ3585: mex(主席树)
- 01.LoT.UI 前后台通用框架分解系列之——小图片背景全屏显示(可自动切换背景)
- 02.LoT.UI 前后台通用框架分解系列之——灵活的菜单栏
- 05.LoT.UI 前后台通用框架分解系列之——漂亮的时间选择器
- 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传
- 07.LoT.UI 前后台通用框架分解系列之——轻巧的文本编辑器
- 07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器
- 洛谷P3358 最长k可重区间集问题(费用流)
- 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程实现播放音频的方法示例
- 使用VSCode的Remote-SSH连接Linux进行远程开发
- Android ListView之EfficientAdapte的使用详解
- JavaScript:ECMAScript 2020中的新增功能
- Android编程实现播放视频的方法示例
- Android开发之RadioGroup的简单使用与监听示例
- Android 根据手势顶部View自动展示与隐藏效果
- Vue 3 如何安装
- Android实现状态栏(statusbar)渐变效果的示例
- Linux中stat函数和stat命令使用详解
- Android Beam 文件传输失败分析与解决方法
- Android实现修改状态栏背景、字体和图标颜色的方法
- Android视频压缩的示例代码
- Android如何从实现到封装一个MVP详解
- Android利用爬虫实现模拟登录的实现实例