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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

项目中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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2008中V表结束标记的分析

VS2008中V表结束标记的分析 在逆向C目标时,我们有时候可能会关注一个V表中到底有多少个虚函数。 这种细节大概多半是与编译器实现相关。 为了弄清楚这个问题,我在VS2008下写了一个简单的测试程序来探求这个问题的答案。 下面是C的测试程序源码&#xff1…

康奈尔笔记法

一页有三栏:主栏、副栏、思考栏。主栏主要是在右上角,主要记录学到的内容。副栏在左边,主要是简单概括重点。思考栏在底部,主要是记录收获、感悟。 主栏:在听讲或阅读时把重要的内容或知识的要点记录在右侧的区域&…

string类的常用函数

string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2"hello";都是正…

Memcached 内存管理(一)

2019独角兽企业重金招聘Python工程师标准>>> Memcached是一个高效的分布式内存cache,了解memcached的内存管理机制,便于我们理解memcached,让我们可以针对我们数据特点进行调优,让其更好的为我所用。这里简单谈一下我对…

相同字符串的string对象不等

今天遇到一个问题,用复制构造函数构造出来的String和同一个字符串的string对象居然不相等,即A和B是相同字符串的string,调用Cstring(A)之后,C和B不相等。 后来改成C string(A.c_str())后,C和B才相等转载于:https://www.cnblogs.c…

jitter 如何优化网络_网络推广如何做好网站SEO优化

网络推广做好网站整站SEO优化的方式有很多,如何才能做好SEO优化?网络推广如何做好网站SEO优化一、定位网站关键词SEO给一个网站刚开始做优化的时候,不是立马就设置关键词,而是先分析该网站主要是做什么产品/服务。知道网站的目的是…

PHP+Mysql查询上一篇和下一篇文章实例

PHPMysql查询上一篇和下一篇文章实例 简单的PHPMysql查询上一篇和下一篇文章实例,并输出上一篇和下一篇文章的标题和链接,适合新手学习获取当前浏览文章id: 1 $id isset($_GET[id]) > 0 ? intval($_GET[id]) : ""; 下一篇文章…

openssh-在win7上的搭建

2019独角兽企业重金招聘Python工程师标准>>> 参考 http://www.cnblogs.com/ericsun/archive/2012/06/10/2544413.html 1.下载OpenSSH:http://sourceforge.net/projects/sshwindows/files/OpenSSH%20for%20Windows%20-%20Release/3.8p1-1%2020040709%20B…

LeetCode8——String to Integer (atoi)(自己编写atoi函数)

题目: 参考解法: I think we only need to handle four cases: discards all leading whitespaces sign of the number overflow invalid input int myAtoi(char* str) {int sign 1, base 0, i 0;while (str[i] ) { i; }//去掉空格if (str[i…

5类6类7类网线对比_孩子们长高的黄金时期是从3月到5月,这阶段多吃6类食物长得快...

原标题:孩子们长高的黄金时期是从3月到5月,这阶段多吃6类食物长得快每个家长都希望孩子长大。当他们看到自己的孩子比同龄的孩子矮时,他们会非常担心。他们特别担心孩子的成长。事实上,儿童的生长发育有明显的季节性,一…

javascript之Partial Application

这一次来学习一下Partial Application。我们先看一下函数的介绍,在维基上有简单的介绍: 在数学中,一个函数是描述每个输入值对应唯一输出值的这种对应关系,符号为 f(x)。例如,表达式 f(x)x2表示了一个函数 f&#xff0…

根据对象的属性去重,获取新数组

() let cateArr arr.reduce(function (arr, current) { hash[current.category_id] ? : hash[current.category_id] true && arr.push(current); return arr }, []); () 转载于:https://www.cnblogs.com/gkxNB/p/11428433.html

快速地创建快顶尖的医学图像处理控件ImageGear Medical

ImageGear Medical控件使开发人员能够快速地创建快顶尖的医学图像处理控件,可以对DICOM文件进行浏览、创建、编辑,可以控制图像所有切面显示和打印,对图像进行注释,以及支持ISIS和TWAIN扫描和100多种图像文件格式,可用…

jj为什么会变大变小_为什么上过太空的种子果实会变大?射线会让生物向大变异吗?...

在科幻电影中,变异是不正常力量的重要来源之一,所谓“富人靠科技,穷人靠变异!”。但其实科幻在某种意义上一起在误导着我们,多数科幻作品其实是以科学为外衣的魔法故事,比如“爱你三千遍”的钢铁侠&#xf…

公司人才招聘管理系统

课程设计名称 公司人才招聘管理系统 完成时间(起、止) 所属小组 课程设计的目的 1、学习和巩固C语言程序设计的方法,充分体会C语言在程序设计方面的强大功能和独特之处; 2、了解用C语言开发项目的一般过程,…

RabbitMQ 示例-生产者-消费者-direct-topic-fanout

这是生产者和消费者2个项目, 包含 direct,topic,fanout模式下的消费,springboot rabbitmq 代码地址:https://github.com/duende99/RabbitMQ.git转载于:https://www.cnblogs.com/duende99/p/11440435.html

CutJS – 用于 HTML5 游戏开发的 2D 渲染引擎

CutJS 是轻量级的,快速的,基于 Canvas 开发的 HTML5 2D 渲染引擎,可以用于游戏开发。它是开源的,跨平台的,与现代的浏览器和移动设备兼容。CutJS 提供了一个类似 DOM 树的数据模型来编写应用程序,并在内部…

LeetCode65——Valid Number(使用DFA)来判断字符串是否为数字

题目: 参考解法:(DFA) class Solution { public:bool isNumber(string str) {int state0, flag0; // flag to judge the special case "."while(str[0] ) str.erase(0,1);//delete the prefix whitespace while(str[s…

win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录

Win10中的Microsoft Store,也称微软应用商店,提供给Windows用户下载安装使用各种应用,因此有些用户,会在这里下载软件,不过,在使用时间长了,也是会产生下载记录的。这篇文章是PE吧给大家带来的W…

HDU 1000 A + B Problem

Problem DescriptionCalculate A B.InputEach line will contain two integers A and B. Process to end of file.OutputFor each case, output A B in one line.Sample Input1 1Sample Output2题意:求输入的两个数之和。分析:注意题目暗含循环输入输出…