在codeigniter中使用Cache_Lite来缓存

最近在做一个小项目,利用到了Codeigniter 这个框架,主要是看重他小巧、方便、快捷,文档齐全。在MVC处理上十分灵活。尤其是model模型,与Zend_Db_Table相比虽然简化,但是十分方便。

codeigniter的功能纵然强大,也有不足之处。其cache模式在于针对不同的uri就会生成cache文件,如果URL中参数不同,则cache文件就会不同,从而产生了漏洞。如果访问者构建自动生成URI,不断向服务器发起请求,就会瞬间产生大量的垃圾文件,导致系统文件臃肿。

因此如果要用到cache功能就必须找到第三方的开发库。Pear中,Cache_Lite属于较为轻量级的缓存系统,且功能强大,可以作为CI原生cache的替代品,将其加入自定义的library文件即可完成。

步骤如下:

  1. 下载Cache_Lite
    下载地址:http://download.pear.php.net/package/Cache_Lite-1.7.7.tgz
  2. 配置以及使用
    解压缩后,将Cache_Lite.php和Lite文件夹复制到 system/application/libraries中。并在Cache_Lite.php中加入:
    if (!defined(’BASEPATH’)) exit(’No direct script access allowed’);
    在要使用Cache_Lite的Controller中,加入:
    $ops = array(
            ‘cacheDir’ => BASEPATH.’/cache/’, //cache文件存储位置
            ‘lifeTime’ => 3600, //cache的有效期
            );
    // ;
    $this->load->library(”Cache_Lite”,$ops,”cc”); //cc为Cache_Lite的别名
    然后在要利用Cache的位置使用Cache_Lite自带的函数就可以拉。
    如:读取缓存:
    $string = $this->cc->get($id);
    生成缓存:
    $this->cc->save($outputString);

posted @ 2012-07-20 09:31  码农神说  阅读(336)  评论(0编辑  收藏  举报