php ci 缓存,项目中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()等等。

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值