您的位置:首页 > 编程学习 > > 正文

yii2支持的数据库(Yii框架常见缓存应用实例小结)

更多 时间:2021-10-22 07:16:54 类别:编程学习 浏览量:241

yii2支持的数据库

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

本文实例讲述了Yii框架常见缓存应用。分享给大家供大家参考,具体如下:

1 首先,你需要安装apc or memcache or redis 。 安装完后。 以redis 为例。 至于如何安装,多找度娘。

在配置文件中components 添加如下。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • '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.

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 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 数据库查询缓存。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • //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 片断缓存。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • if($this->beginCache("xx"))
  • {
  •   echo "test cache ";
  •   $this->endCache();
  • }
  • //beginCache 会存在第二个参数,意思是选用指定的缓存器。如果需要使用不同的缓存时,可以定制。
  • 5 页面缓存。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • public function filters(){
  •   return array(
  •     array(
  •       'COutputCache+index+admin',
  •       'duration' => 120,
  •       'varyByParam'=>array('id'),
  •     ),
  •   );
  • }
  • 使用控制器,直接对指定的action 进行缓存处理 。

    还有varyBySession 可以选配。

    希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/mu_rain/article/details/47402877

    标签:缓存 Yii
    您可能感兴趣