yskl 发表于 2018-2-11 12:15:04


            本文实例讲述了YII Framework框架缓存用法。分享给大家供大家参考,具体如下:
缓存的产生原因众所周知。于是YII作为一个高效,好用的框架,不能不支持缓存。所以YII对各种流行的缓存都提供了接口,你可以根据你的需要使用不同的缓存。
1.YII中的缓存介绍
YII中的缓存是通过组件方式定义的,具体在如下目录
/yii_dev/yii/framework/caching# tree
.
├── CApcCache.php
├── CCache.php
├── CDbCache.php
├── CDummyCache.php
├── CEAcceleratorCache.php
├── CFileCache.php
├── CMemCache.php
├── CWinCache.php
├── CXCache.php
├── CZendDataCache.php
└── dependencies
    ├── CCacheDependency.php
    ├── CChainedCacheDependency.php
    ├── CDbCacheDependency.php
    ├── CDirectoryCacheDependency.php
    ├── CExpressionDependency.php
    ├── CFileCacheDependency.php
    └── CGlobalStateCacheDependency.php
1 directory, 17 files
官方原文解释如下:
Yii 提供了不同的缓存组件,可以将缓存数据存储到不同的媒介中。例如, CMemCache 组件封装了 PHP 的 memcache 扩展并使用内存作为缓存存储媒介。 CApcCache 组件封装了 PHP APC 扩展; 而 CDbCache 组件会将缓存的数据存入数据库。下面是一个可用缓存组件的列表:
CMemCache: 使用 PHP memcache 扩展.
CApcCache: 使用 PHP APC 扩展.
CXCache: 使用 PHP XCache 扩展。注意,这个是从 1.0.1 版本开始支持的。
CEAcceleratorCache: 使用 PHP EAccelerator 扩展.
CDbCache: 使用一个数据表存储缓存数据。默认情况下,它将创建并使用在 runtime 目录下的一个 SQLite3 数据库。 你也可以通过设置其 connectionID 属性指定一个给它使用的数据库。
CZendDataCache: 使用 Zend Data Cache 作为后台缓存媒介。注意,这个是从 1.0.4 版本开始支持的。
CFileCache: 使用文件存储缓存数据。这个特别适合用于存储大块数据(例如页面)。注意,这个是从 1.0.6 版本开始支持的。
CDummyCache: 目前 dummy 缓存并不实现缓存功能。此组件的目的是用于简化那些需要检查缓存可用性的代码。 例如,在开发阶段或者服务器尚未支持实际的缓存功能,我们可以使用此缓存组件。当启用了实际的缓存支持后,我们可以切换到使用相应的缓存组件。 在这两种情况中,我们可以使用同样的代码Yii::app()->cache->get($key) 获取数据片段而不需要担心 Yii::app()->cache 可能会是 null。此组件从 1.0.5 版开始支持。
提示: 由于所有的这些缓存组件均继承自同样的基类 CCache,因此无需改变使用缓存的那些代码就可以切换到使用另一种缓存方式。
缓存可以用于不同的级别。最低级别中,我们使用缓存存储单个数据片段,例如变量,我们将此称为 数据缓存(data caching)。下一个级别中,我们在缓存中存储一个由视图脚本的一部分生成的页面片段。 而在最高级别中,我们将整个页面存储在缓存中并在需要时取回。
在接下来的几个小节中,我们会详细讲解如何在这些级别中使用缓存。
注意: 按照定义,缓存是一个不稳定的存储媒介。即使没有超时,它也并不确保缓存数据一定存在。 因此,不要将缓存作为持久存储器使用。(例如,不要使用缓存存储 Session 数据)。
2.缓存的配置和调用方式
yii中的缓存主要是通过组件的方式实现的,具体需要配置方式可以通过缓存的类说明进行配置。
通常是指定缓存组件的类
例如apc
'cache'=>array(
'class'=>'system.caching.CApcCache'
),
页: [1]
查看完整版本: YII Framework框架教程之缓存用法详解