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程序设计有所帮助。

(0)

相关推荐

  • 深入解析PHP的Yii框架中的缓存功能

    数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存中取回.它也是更高级缓存特性的基础,例如查询缓存和内容缓存. 如下代码是一个典型的数据缓存使用模式.其中 $cache 指向缓存组件: // 尝试从缓存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在缓存中没有找到,则重新计算它的值 // 将 $data 存放到缓存供下次使用 $cache->set($key, $data); } // 这儿

  • PHP Yii清理缓存的实现方法

    PHP  Yii清理缓存的实现方法 本文实例讲述了Yii清理缓存的方法.分享给大家供大家参考,具体如下: html: <button onclick="clearCache()">ClearCache</button> js: function clearCache() { $.get('../eng/index.php?r=site/clear&'+new Date().getTime(),function(){ alert('Clear eng ca

  • Yii配置与使用memcached缓存的方法

    本文实例讲述了Yii配置与使用memcached缓存的方法.分享给大家供大家参考,具体如下: 1. 下载memcached软件包,解压,把memcached.exe 放到随意一个地方,比如:d:/memcached/ 下. 2. 开始->运行->输入cmd,命令行打开memcached.exe,所在文件夹,输入:memcached.exe -d install  安装 3. 输入memcached.exe -d start 启动 4. 中加入 extension=php_memcache.dl

  • Yii 2.0如何使用页面缓存方法示例

    前言 本文主要给大家介绍的是关于Yii2.0如何使用页面缓存的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍. 起初使用页面缓存,发现使用于含有参数的方法存在弊端,只能缓存第一次的页面,导致后面所有不同参数的页面均显示第一次缓存页面:没有生成一个参数页面一个缓存:于是,进行了重写页面缓存. 示例代码 <?php namespace common\lib; use Yii; use yii\caching\Cache; use yii\di\Instance; use yii\web\

  • YII Framework框架教程之缓存用法详解

    本文实例讲述了YII Framework框架缓存用法.分享给大家供大家参考,具体如下: 缓存的产生原因众所周知.于是YII作为一个高效,好用的框架,不能不支持缓存.所以YII对各种流行的缓存都提供了接口,你可以根据你的需要使用不同的缓存. 1.YII中的缓存介绍 YII中的缓存是通过组件方式定义的,具体在如下目录 /yii_dev/yii/framework/caching# tree . ├── CApcCache.php ├── CCache.php ├── CDbCache.php ├──

  • yii2缓存Caching基本用法示例

    本文实例讲述了yii2缓存Caching基本用法.分享给大家供大家参考,具体如下: 在yii的配置文件中添加: 'cache' => [ 'class' => 'yii\caching\ApcCache', ], 缓存的使用: <?php $key = 'cacheKey'; //读取缓存 $data = Yii::$app->cache->get($key); //判断缓存是否存在,如果不存就生成缓存 if ($data === false) { $cache->se

  • Yii2 assets清除缓存的方法

    本文实例讲述了Yii2 assets清除缓存的方法.分享给大家供大家参考,具体如下: use vendor\myVendorName\myPackageName\assets\AppAsset; AppAsset::register($this); 在配置文件中添加: 'components' => [ 'assetManager' => [ 'linkAssets' => true, ], ] 刷新后就可以清除缓存 更多关于Yii相关内容感兴趣的读者可查看本站专题:<Yii框架入

  • Yii开启片段缓存的方法

    本文实例讲述了Yii开启片段缓存的方法.分享给大家供大家参考,具体如下: 1.main.php文件中的components中添加: cache'=>array( 'class'=>'system.caching.CFileCache', ), 2.在view中哪里需要缓存就添加这句话 <?php if($this->beginCache('aaa', array( 'duration'=>3360, 'varyByParam'=>array('page'), 'depe

  • YII框架http缓存操作示例

    本文实例讲述了YII框架http缓存操作.分享给大家供大家参考,具体如下: http禁止缓存原理 header('Expires: 0'); header('Last-Modified: '. gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: no-store, no-cahe, must-revalidate'); //ie专用 header('Cache-Control: post-chedk=0, pre-check=0'

  • Yii清理缓存的方法

    本文实例讲述了Yii清理缓存的方法.分享给大家供大家参考,具体如下: html: 复制代码 代码如下: <button onclick="clearCache()">ClearCache</button> js: function clearCache() { $.get('../eng/index.php?r=site/clear&'+new Date().getTime(),function(){ alert('Clear eng cache ok.

  • Yii数据库缓存实例分析

    本文实例讲述了Yii数据库缓存用法.分享给大家供大家参考,具体如下: yii  操作数据库缓存: 1.在main.php主文件中添加 'dbcache'=>array( 'class'=>'system.caching.CDbCache', //数据库缓存,注意你自己的路径问题 ), 2.设置数据库缓存 Yii::app()->cache->set($key,$value,$outtime); //$key 唯一主键,$value 对应主键的值(可以是数组), $outtime 过

  • 简介PHP的Yii框架中缓存的一些高级用法

    页面缓存 页面缓存指的是在服务器端缓存整个页面的内容.随后当同一个页面被请求时,内容将从缓存中取出,而不是重新生成. 页面缓存由 yii\filters\PageCache 类提供支持,该类是一个过滤器.它可以像这样在控制器类中使用: public function behaviors() { return [ [ 'class' => 'yii\filters\PageCache', 'only' => ['index'], 'duration' => 60, 'variations'

随机推荐