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+eclipse+selenium环境搭建

    这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. ...

  2. 为WIN8 APP创建置顶desktop应用

    Windows 8: TopMost window   I am working on my next ambitious project “MouseTouch” which is multi to ...

  3. vuex 使用笔记

    1. 在store.js中 储存数据状态 02. 在action.js中分发行为 03. 在页面中获取并使用状态

  4. vue.js 请求数据

    VUE.JS var vm = new Vue({ el:"#list", data:{ gridData: "", }, mounted: function( ...

  5. redis的安装及使用

    Redis介绍: 1.redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 2.redis是一个key-value ...

  6. 大数据系列-java用官方JDBC连接greenplum数据库

    这个其实非常简单,之所以要写此文是因为当前网上搜索到的文章都是使用PostgreSQL的驱动,没有找到使用greenplum官方驱动的案例,两者有什么区别呢? 一开始我也使用的是PostgreSQL的 ...

  7. HTML文档可以包含的内容

    通过不同的标签,HTML文档可以包含不同的内容,比如文本,链接,图片,列表,表格,表单,框架等. 文本 HTML对文本的支持是最丰富的,你可以设置不同级别的标题,分段和换行,可以指定文本的语义和外观, ...

  8. thinkphp 3.2.3 session 丟失問題

    之前做的几个 站session在跨页时也不会丢失(都在同一台服务器,所以我排除了服务器配置问题),这次居然很奇怪的发生的,在火狐上有,在ie, 谷哥上没有session,看了很多网上的贴子 其中有一个 ...

  9. 记录一下折腾webp 的过程

    最近有客户想要处理webp 的动图,情况当然是我们并不能处理webp 格式的图片.这事就交给了我来折腾,一开始想着用瑞士军刀ffmpeg.结果是折腾了差不多一天,前前后后编译了几十次ffmpeg 源码 ...

  10. Android 笔记 文件存取 day5

    针对文件的存取 package com.example.file01; import com.example.service.FileService; import android.app.Activ ...