Yii框架常见缓存应用实例小结


Posted in PHP onSeptember 09, 2019

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
YII路径的用法总结
Jul 09 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
浅谈php命令行用法
Feb 04 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
php中简单的对称加密算法实现
Jan 05 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PDO::beginTransaction讲解
Jan 27 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
Yii框架函数简单用法分析
Sep 09 #PHP
Yii框架的路由配置方法分析
Sep 09 #PHP
PHP实现时间日期友好显示实现代码
Sep 08 #PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 #PHP
Yii框架连表查询操作示例
Sep 06 #PHP
Laravel框架中缓存的使用方法分析
Sep 06 #PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 #PHP
You might like
php若干单维数组遍历方法的比较
2011/09/20 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
python购物车程序简单代码
2018/04/18 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
python打开文件的方式有哪些
2020/06/29 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
python requests库的使用
2021/01/06 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
七年级英语教学反思
2014/01/15 职场文书
竞选部长演讲稿
2014/04/26 职场文书
语文教育专业求职信
2014/06/28 职场文书
见习报告格式范文
2014/11/08 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
Java移除无效括号的方法实现
2021/08/07 Java/Android
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python