Yii的自带缓存都继承CCache 类, 在使用上基本没有区别
php
缓存基础类 CCache 提供了两个最经常使用的方法:set() 和 get()。
要在缓存中存储变量 $value,咱们选择一个惟一 ID 并调用 set() 来存储它:
sql
Yii::app()->cache->set($id, $value);
被缓存的数据会一直保留在缓存中,直到因一些缓存策略而被删除(好比缓存空间满了,删除最旧的数据)。要改变这一行为,咱们还能够在调用 set() 时加一个过时参数,这样数据过一段时间就会自动从缓存中清除。
// 在缓存中保留该值最多 30 秒
数据库
Yii::app()->cache->set($id, $value, 30);
当咱们稍后须要访问该变量时(无论是否是同一 Web 请求),咱们调用 get() (传入 ID)来从缓存中获取它。若是返回值为 false,说明该缓存不可用,须要咱们从新生成它。
数组
$value=Yii::app()->cache->get($id); if($value===false) { // 由于在缓存中没找到,从新生成 $value // 再缓存一下以备下次使用 // Yii::app()->cache->set($id,$value); }
为一个要缓存的变量选择 ID 时,确保该 ID 在应用中是惟一的。没必要保证 ID 在跨应用的状况下保证惟一,由于缓存组件有足够的智能来区分不一样应用的缓存 ID。
要从缓存中删除一个缓存值,调用 delete();要清空全部缓存,调用 flush()。调用 flush() 时要很是当心,由于它会把其它应用的缓存也清空。
提示: 由于 CCache 实现了 ArrayAccess 接口,能够像数组同样使用缓存组件。例如:
缓存
$cache=Yii::app()->cache; $cache['var1']=$value1; // 至关于: $cache->set('var1',$value1); $value2=$cache['var2']; // 至关于: $value2=$cache->get('var2'); 要使用这些缓存也很简单,只要服务器支持, 而后通进简单的修改配置文件便可使用 一. Memcache 的使用 1. 编辑配置文件config/main.php 添加memcache配置 array( 'components'=>array( 'memcache'=>array( 'class'=>' system.caching.CMemCache', 'servers'=>array( array( 'host'=>'server1', 'port'=>11211, 'weight'=>60, ), array( 'host'=>'server2', 'port'=>11211, 'weight'=>40, ), ), ), ), )
2. 在框架中的使用
服务器
Yii::app()->memcache ->set($key, $value, $expire); Yii::app()->memcache ->get($key); Yii::app()->memcache ->deleteValue($key);
二. 数据库缓存的使用
1. 编辑配置文件config/main.php 添加dbcache配置
app
return array( ...... 'components'=>array( ...... 'dbcache'=>array( 'class'=>' system.caching.CDbCache', ), 'db'=>array( 'class'=>'system.db.CDbConnection', 'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db', 'schemaCachingDuration'=>3600, ), ), );
2. 在框架中的使用
框架
Yii::app()->dbcache ->set($key, $value, $expire); Yii::app()->dbcache ->get($key); 三. 文件缓存的使用 1. 编辑配置文件config/main.php 添加dbcache配置 // application components 'components'=>array( 'filecache'=>array( 'class'=>'system.caching.CFileCache', //咱们使用CFileCache实现缓存,缓存文件存放在runtime文件夹中 'directoryLevel'=>'2', //缓存文件的目录深度 ), ),
2. 在框架中的使用
ide
Yii::app()->filecache ->set($key, $value, $expire); Yii::app()->filecache ->get($key);
四. APC使用
1. 编辑配置文件config/main.php 添加dbcache配置
component
'components'=>array( 'class' => 'system.caching.CApcCache', ),