yii2.0缓存篇之片段缓存

本文详细介绍了Yii2.0框架中的片段缓存技术,包括四种不同的缓存方式:通过缓存开关控制、设定缓存时间、依赖缓存以及文件依赖缓存。内容涵盖如何启用和关闭缓存,设置缓存失效时间以及根据数据或文件变化自动失效缓存的方法,旨在帮助开发者更好地理解和应用片段缓存以提高页面性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

片段缓存指的是缓存页面内容中的某个片段。默认缓存 60秒。


return $this->renderPartial("ca");                         //控制器就简单的调一个页面即可。


视图 ca.php 内(方式一 缓存开关):
<php

$enabled=false;          //此值为 false 将关闭缓存,内容部分改变则会立马改变。相应,true就是开启缓存。
?>
<?php if($this->beginCache("cache_div",['enabled'=>$enabled])){ ?>       
   2222333333                                 //这里的值将会被缓存,在缓存时间内更改这里的值将不会发生任何变化。
<?php  $this->endCache(); };
?>

      ////如果缓存中存在该内容,beginCache() 方法将渲染内容并返回 false,因此将跳过内容生成逻辑。否则, 内容生成逻辑被执行,一直执行到 endCache() 时,生成的内容将被捕获并存储在缓存中,每个片段缓存需要全局唯一的 $id【就是cache_div】 标记。


视图 ca.php 内(方式二 普通缓存):
<?php if($this->beginCache("cache_div")){ ?>       
   2222333333                                 //这里的值将会被缓存,在缓存时间内更改这里的值将不会发生任何变化。
<?php  $this->endCache(); };
?>


视图 ca.php 内(方式三 时间设置):
<?php
   $time=15;         //缓存失效时间,缓存将在15秒后失效
?>
<?php if($this->beginCache("cache_div",['duration'=>$time])){ ?>       
   2222333333                                
<?php  $this->endCache(); };
?>


视图 ca.php 内(方式四 依赖缓存):
<?php
$dependency = [
    'class' => 'yii\caching\DbDependency',           //根据数据改变而使得缓存失效,保证数据及时更新。
    'sql' => 'SELECT MAX(updated_at) FROM post',
];
?>
<?php
    if ($this->beginCache("cache_div",['dependency' => $dependency])) {

        // ... 在此生成内容 ...

        $this->endCache();
    }
?>


视图 ca.php 内(方式五 依赖文件缓存):
<?php
$dependency = [
    'class' => 'yii\caching\FileDependency',           //根据文件内容改变使得缓存失效,来更新缓存数据。
    'fileName' => 'hw.txt',                            //此文件内容改变,数据则失效。此文件在 前或后台/web 目录下
];
?>
<?php
    if ($this->beginCache("cache_div", ['dependency' => $dependency])) {

        // ... 在此生成内容 ...

        $this->endCache();
    }
?>
         注意:默认缓存时间 60s,即使文件不改变,60s 后如果内容变了,缓存仍然更新。可能是为了保证数据准确性才这么设置的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值