Yii的自带缓存的用法实例

    Yii的自带缓存都继承CCache 类, 在使用上基本没有区别  
    缓存基础类 CCache 提供了两个最常用的方法:set() 和 get()。  
    要在缓存中存储变量 $value,我们选择一个唯一 ID 并调用 set() 来存储它:  
    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配置  
    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. 在框架中的使用  
    Yii::app()->filecache ->set($key, $value, $expire);  
    Yii::app()->filecache ->get($key);  
    四.    APC使用  
    1.    编辑配置文件config/main.php 添加dbcache配置  
    'components'=>array(  
           'class' => 'system.caching.CApcCache',  
    ),  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值