最近在做一个小项目,利用到了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);

转载于:https://www.cnblogs.com/zhaiqianfeng/archive/2012/07/20/4616924.html

在codeigniter中使用Cache_Lite来缓存相关推荐

  1. 利用 Cache_Lite代替codeigniter中的cache功能

    codeigniter的功能纵然强大,也有不足之处.其cache模式在于针对不同的uri就会生成cache文件,如果URL中参数不同,则 cache文件就会不同,从而产生了漏洞.如果访问者构建自动生成 ...

  2. ci mysql 缓存_CodeIgniter框架中启用和清除缓存的教程

    CodeIgniter框架启动与缓存问题许多的新手都不知道如何来操作了,下面我们就一起来看一篇关于CodeIgniter框架中启用和清除缓存例子,具体如下所示. Codeigniter支持缓存技术,以 ...

  3. springboot整个缓存_SpringBoot中整合Redis(缓存篇)

    实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度.将用户频繁访问的内容存放在离用户最近,访问速度最快 ...

  4. spring-boot的spring-cache中的扩展redis缓存的ttl和key名

    原文地址:spring-boot的spring-cache中的扩展redis缓存的ttl和key名 前提 spring-cache大家都用过,其中使用redis-cache大家也用过,至于如何使用怎么 ...

  5. php ci model条件查询,php – CodeIgniter中的多条件WHERE子句

    我想删除一些像核心PHP中的查询这样的数据 WHERE user_id=$id AND sender_id=$send_id OR user_id=$send_id AND sender_id=$id ...

  6. linux nginx http cache时间不对,Linux中Nginx设置proxy_cache缓存与取消缓存-linux-操作系统-壹...

    本文章来讲述一下关于Linux中Nginx设置proxy_cache缓存与取消缓存实现方法,有需要的朋友可参考. 在配置文件的server{}内,添加这么一句即可: 代码如下 复制代码 locatio ...

  7. php $db-gt;query 行数,php – 如何在CodeIgniter中组合query()和limit()方法

    是否可以在codeigniter中执行类似的操作: publi function getcat($category_id) { $query = "(SELECT cat.id, cat.t ...

  8. java中一级缓存_java – 集群环境中的hibernate一级缓存

    您的第一个语句不正确,hibernate中的第一级缓存不在同一JVM的边界内维护.它保持在休眠会话的边界​​内. Hibernate分别处理会话(会话中的实体,这是第一级缓存),即使在同一个jvm中, ...

  9. Android 系统(173)---Android中图片的三级缓存

    Android中图片的三级缓存 为什么要使用三级缓存 如今的 Android App 经常会需要网络交互,通过网络获取图片是再正常不过的事了 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量 ...

最新文章

  1. springboot日志logback配置
  2. python 会计专用格式_python-2.7 – 如何使用xlsxwriter将格式应用为“文本”和“会计”...
  3. REVERSE-PRACTICE-BUUCTF-9
  4. Linux地图投影Proj4应用,Proj.4简介与使用
  5. Python计算机视觉中译本实例代码/数据集
  6. python api接口调用_python 调用有道api接口的方法
  7. rap2检测哪些接口在使用_使用四合一气体检测仪应注意哪些方面?-逸云天
  8. Linux 之 CentOS 7.2 安装 Java JDK
  9. 思科交换机配置远程登录命令
  10. 第三章 灰度变换与空间滤波
  11. 微信小程序获取页面高度
  12. 持久化模型_建立领域模型-持久性不可知论简介
  13. document.documentElement对象
  14. 搭建CTPN网络(基于windows与tensorflow)
  15. MatLab常见函数和运算符号
  16. 什么是私约、助记词和密码?
  17. 后端技术杂谈10:Docker 核心技术与实现原理
  18. 申请专利流程及费用。
  19. eas库存状态调整单不能反审核_EAS供应链系统常见问题
  20. 不用装闭路电视就可以看CCTV1-10频道电视,在线随心换台包你满意

热门文章

  1. OpenCV--cvScaler颜色赋值
  2. Ubuntu搜狗输入法安装
  3. Yocto Project - basic - 01 - Quick Start
  4. v-model双向绑定原理_【Vue原理】VModel 白话版
  5. groovy怎样从sql语句中截取表名_SQl-查询篇
  6. python数据框的横向贾总_[Spark][Python]DataFrame的左右连接例子
  7. 数组翻转_LeetCode刷题实战151:翻转字符串里的单词
  8. android 输入法如何启动流程_android输入法02:openwnn源码解析01—输入流程
  9. android ndk 文件管理,Android NDK开发指南(二)Android.mk文件
  10. git 命令行忽略提交_git命令入门(本地仓库)