项目中CI缓存适配器的使用

项目中CI缓存适配器的使用
    项目中有若干控制器,这些控制器有一些公共数据,因此,在基控制器类中获取这些数据,为了提高系统性能,使用了缓存系统,采用了CI框架提供的缓存适配器来提供缓存数据的设置与获取。

1.在基类的构造方法中加载CI的缓存适配器

//加载cache适配器
      $this->load->driver('cache', array('adapter' => 'file'));

第一个参数是加载适配器类型,此处是缓存适配器;第二个参数是数组形式,adapter=>file表示指定文件作为缓存的实现。(也可以指定其它缓存实现,比如apc)

2.在基类的构造方法中加载所有缓存数据,系统中封装了getCommCache()方法,在该方法中,从缓存中获取所有子控制器需要使用的公共数据,代码如下:

public function getCommCache()
    {
        //获取导航数据
        if($this->getCache('nav'))    //如果缓存数据存在
        {
            //从缓存中获取数据
            $this->nav = $this->getCache('nav');
        }else    //缓存数据不存在
        {
            //从数据库获取数据
            $this->load->model('Mhead');
            $this->nav=$this->Mhead->get_head();
            //将该数据设置到缓存
            $this->setCache('nav',$this->nav,10);//三个小时
        }
        。。。。。(其它数据设置与获取类似)
    }

以上代码中getCache、setCache方法是对CI缓存适配器方法的封装,如下:

public function setCache($id,$data,$time=null)
    {
        $this->cache->save($id, $data, $time);
    }

  
    public function getCache($id)
    {
        return  $this->cache->get($id);
    }

其中,有关的几个缓存适配器的方法为:
    (1)设置数据到缓存系统中:
  

 $this->cache->save('cache_item_id[string]', 'data_to_cache[mix]',[time[int]]);

    第一个参数为缓存数据名,第二个参数为需要缓存的数据,第三个参数可选,是缓存有效时间默认60秒。例如,需要将某段字符串作为缓存数据:
  

  $data = "this is the common text";
    $this->cache->save('commText',$data,60);

    (2)从缓存中获取数据:
  

 $foo = $this->cache->get('my_cached_item');

    参数为设置缓存时的ID,返回值就是获取到的缓存数据:
  

  $Text = $this->cache->get('commText');

    除此之外,还包括删除某个缓存数据:$this->cache->delete('cache_item_id');清空所有缓存:$this->cache->clean()等等。

    暂时这么多,以后再补充。。。

转载于:https://my.oschina.net/u/1472370/blog/220726

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值