thinkphp 中内置了缓存操作 3.1版本的数据缓存方法是cache

基本用法:

  S(array('type'=>'xcache','expire'=>60));

缓存初始化

  缓存初始化可以支持的参数根据不同的缓存方式有所区别,常用的参数

    expire   缓存的有效期

    prefix   缓存标识前缀

    type   缓存类型

  其中 expire prefix type 为标识符 命名遵守标识符的命名规则可以随意替换

  ps:如果S方法不传入type参数初始化,可以读取配置文件中设置的DATA_CACHE_TYPE参数值作为默认类型

       prefix 参数没有传入会读取配置文件的DATA_CACHE_PREFIX参数值

     expire 参数没有传入则读取DATA_CACHE_TIME配置值作为默认值

  有些缓存方式会有一些自身特殊的参数,如memcache缓存,还需配置其他的参数:

  

   S(array(

       'type'=>'memcache',    //缓存类型

       'host'=>'localhost',     //主机地址

       'port'=>'11211',     //memcache端口号

       'prefix'=>'mem',    //缓存前缀

       'expire'=>60      //缓存时间  一分钟

     ));

缓存设置

//设置缓存
S('a',$value);

上面的代码中没有设置缓存时间 会读取配置文件中的DATA_CACHE_TIME中的参数值

在缓存设置的时候改变参数

//缓存数据300s
S('a',$value,300);
// 采用文件方式缓存数据300秒
S('a',$value,array('type'=>'file','expire'=>300));

缓存读取

//读取缓存
$res = S('a');

ps:如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值

缓存删除

//删除缓存
S('a',null);

对象方式操作缓存

//初始化缓存
$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600));
$cache->name = 'value'; //设置缓存
$value = $cache->name; //获取缓存
unset($cache->name); //删除缓存 ps:其中name为合法的标识符

缓存的应用

   在读取数据库的时候把读取的数据缓存起来 当用户再次调用读取数据库函数时先判断缓存是否过期 如果缓存没有过期可直接从缓存中读取数据 缓存过期再读取数据库 从而减轻数据库的压力

thinkphp 缓存数据的更多相关文章

  1. ThinkPHP使用Memcached缓存数据

    ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP ...

  2. ThinkPHP 缓存技术详解 使用大S方法

    如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数 ...

  3. thinkphp缓存使用

    thinkphp缓存使用 一.总结 1.这里的缓存不是指的缓存的页面,而是cache,如果你缓存了一个数组,那么你就可以取出这个数组里面的数据进行使用,用法性质和cookie和session有点像 2 ...

  4. ThinkPHP 添加数据到数据库失败

    ThinkPHP 添加数据到数据库失败 一般情况下会先检查一下几个方面 检查控制器或Model名是否有误 检查需要插入的数据是否为空或者缺失参数 检查数据表名及字段名称(大部分下都是字段名有误出错的) ...

  5. plain framework 1 网络流 缓存数据详解

    网络流是什么?为什么网络流中需要存在缓存数据?为什么PF中要采用缓存网络数据的机制?带着这几个疑问,让我们好好详细的了解一下在网络数据交互中我们容易忽视以及薄弱的一块.该部分为PF现有的网络流模型,但 ...

  6. HTML5本地缓存数据

    //HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...

  7. 刷新本地的DNS缓存数据

    ipconfig /flushdns”执行,刷新本地的DNS缓存数据. ipconfig /displaydns      查看本地DNS缓存记录的命令为:ipconfig /displaydns.你 ...

  8. 网站缓存数据到tomcat服务器

    通过缓存使相同的数据不用重复加载,降低数据库的访问 public class CacheFilter implements Filter { //实例变量[每线程共享] private Map< ...

  9. iOS五种本地缓存数据方式

    iOS五种本地缓存数据方式   iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

随机推荐

  1. java 文件保存到本地

    private void savePic(InputStream inputStream, String fileName) { OutputStream os = null; try { Strin ...

  2. xpath定位中starts-with、contains和text()的用法

    starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...

  3. ffmpeg-201612[01,08,10,17,21,27,30]-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...

  4. Android搜索功能的案例,本地保存搜索历史记录......

    开发的APP有一个搜索功能,并且需要显示搜索的历史记录,我闲暇之余帮她开发了这个功能,现把该页面抽取成一个demo分享给大家. 实现效果如图所示:  本案例实现起来很简单,所以可以直接拿来嵌入项目中使 ...

  5. iOS企业分发证书制作

    自签名证书制作流程 打开终端,输入 openssl genrsa - ,生成名称为ca的秘钥 注:openssl生成的文件皆放在用户文档下(finder菜单栏'前往' - 电脑 -Macintosh ...

  6. vim 使用技巧记录

    vim 使用技巧记录 1.批量注释与取消注释 命令格式:起始行号,结束行号s#^#//#g 例如: 注释代码3到15行,"//"可以是其他的"" :3,15s# ...

  7. 数据分析师的福音——VS 2017带来一体化的数据分析开发环境

    (此文章同时发表在本人微信公众号“dotNET开发经验谈”,欢迎右边二维码来关注.) 题记:在上个月的Connect() 2016大会上,微软宣布了VS 2017 RC的发布,其中为数据分析师带来了一 ...

  8. 3.4.4 数据预留和对齐(skb_reserve, skb_push, skb_put, skb_pull)

    转自:http://book.51cto.com/art/201206/345043.htm <Linux内核源码剖析:TCP/IP实现>本书详细论述了Linux内核2.6.20版本中TC ...

  9. 如何在一个页面上让多个jQuery

    如何在一个页面上让多个jQuery共存呢?比如jquery-1.5和jquery-1.11. 你可能会问,为什么需要在一个页面上让多个jQuery共存?直接引用最新版本的jQuery不行吗? 答案是, ...

  10. 【Hibernate框架】关联映射(一对一关联映射)

    一.整理思路: 之前,小编总结过Mybatis的关联映射,接下来,再来总结一下hibernate的相关的关联映射,直接上图: 这张图,就是小编整理总结整个Hibernate的关联映射的一个大致思路. ...