1. 数据缓存

在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如:缓存初始化
// 缓存初始化
S(array('type'=>'xcache','expire'=>60));
缓存初始化可以支持的参数根据不同的缓存方式有所区别,常用的参数是:参数   描述
expire  缓存有效期(时间为秒)
prefix  缓存标识前缀
type    缓存类型
系统目前已经支持的缓存类型包括:Apachenote、Apc、Db、Eaccelerator、File、Memcache、Redis、Shmop、Sqlite、Wincache和Xcache。如果S方法不传入type参数初始化的话,则读取配置文件中设置的DATA_CACHE_TYPE参数值作为默认类型。同样的道理,prefix参数如果没有传入会读取配置文件的DATA_CACHE_PREFIX参数值,expire参数没有传入则读取DATA_CACHE_TIME配置值作为默认。有些缓存方式会有一些自身特殊的参数,例如Memcache缓存,还需要配置其他的参数:S(array('type'=>'memcache','host'=>'192.168.1.10','port'=>'11211','prefix'=>'think','expire'=>60)
);
对于全局的缓存方式,一般我们建议添加prefix(缓存前缀)参数用以区分不同的应用,以免混淆。缓存设置
// 设置缓存
S('name',$value);
会按照缓存初始化时候的参数进行缓存数据,也可以在缓存设置的时候改变参数,例如:// 缓存数据300秒
S('name',$value,300);
甚至改变之前的缓存方式或者更多的参数:// 采用文件方式缓存数据300秒
S('name',$value,array('type'=>'file','expire'=>300));
如果你在缓存设置的时候采用上面的数组方式传入参数的话,会影响到后面的缓存存取。缓存读取
// 读取缓存
$value = S('name');
缓存读取的是前面缓存设置的值,这个值会受缓存初始化或者缓存设置的时候传入的参数影响。 如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值。缓存删除
// 删除缓存
S('name',null);
删除缓存标识为name的缓存数据。对象方式操作缓存
我们可以采用对象方式操作缓存,例如:// 初始化缓存
$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600));
$cache->name = 'value'; // 设置缓存
$value = $cache->name; // 获取缓存
unset($cache->name); // 删除缓存
如果你设置了缓存前缀的话,对应的缓存操作只是对应该缓存前缀标识的,不会影响其他的缓存。关于文件缓存方式的安全机制
如果你使用的是文件方式的缓存机制,那么可以设置DATA_CACHE_KEY参数,避免缓存文件名被猜测到,例如:'DATA_CACHE_KEY'=>'think'
缓存队列
数据缓存可以支持缓存队列,简单的说就是可以限制缓存的数量,只需要在初始化的时候指定length参数:S(array('type'=>'xcache','length'=>100,'expire'=>60));
设置了length参数后,系统只会缓存最近的100条缓存数据。

2. 快速缓存

3. 查询缓存

4. sql解析缓存

5. 静态缓存

更多:http://document.thinkphp.cn/manual_3_2.html#data_cache

tp3.2 缓存cache相关推荐

  1. Java 中常用缓存Cache机制的实现

    /* *所谓缓存,就是将程序或系统经常要调用的对象存在内存中,以便其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. *内存缓存,也就是实现一个类中静态Map,对 ...

  2. php smarty安装,php smarty 安装 、配置、使用 及缓存cache的配置使用

    cache 使用: cache配置: $smarty->cache_dir = "/caches/";  //缓存目录 $smarty->caching = true; ...

  3. 转载:缓存 Cache

    /// <summary>         /// 缓存函数         /// </summary>         /// <param name="p ...

  4. 计算机缓存Cache机制理解

    1.计算机存储体系简介 存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小.寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级, ...

  5. java cacheutil_Java 常用缓存Cache机制的实现

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类:一.通过文件缓存,顾名思义文件 ...

  6. tp5缓存在html怎么用,tp5.1缓存Cache的使用

    前言:一般分类基本不会动,所以我们在分类当中加入缓存 1.控制器use use think\facade\Cache; 2.存取缓存 public function index() { if (Cac ...

  7. asp.net 应用数据缓存 -- Cache对象使用

    ASP.NET 应用数据缓存 -- Cache对象使用 [原文:http://msdn.microsoft.com/zh-cn/library/18c1wd61%28v=vs.100%29.aspx] ...

  8. ASP.NET状缓存Cache的应用-提高数据库读取速度

    ASP.NET状缓存Cache的应用-提高数据库读取速度 原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述        既然缓存中的数据其实是来自数据库的,那么缓 ...

  9. ASP.NET 缓存 Cache

    ASP.NET 提供一个功能完整的缓存引擎,页面可使用该引擎通过 HTTP 请求存储和检索任意对象. 缓存的生存期与应用程序的生存期相同,也就是说,当应用程序重新启动时,将重新创建缓存. 将数据添加到 ...

  10. ASP.NET状态管理之六(缓存Cache)

    ASP.NET状态管理之六(缓存Cache) ASP.NET 为您提供了一个强大的.便于使用的缓存机制,用于将需要大量服务器资源来创建的对象存储在内存中.缓存这些类型的资源会大大改进应用程序的性能. ...

最新文章

  1. MQTT---HiveMQ源代码具体解释(十八)Cluster-kryo与Serializer
  2. leetcode刷题总结(持续更新)
  3. 串口下载器rts线不接可以吗_【单片机自学】1.单片机的开发环境及下载过程教程...
  4. python高精度加法_14.高精度加法
  5. Python学习笔记:字符串和编码
  6. DAC MAC RBAC ABAC 权限系统的设计
  7. VTK:PolyData之VertexConnectivity
  8. SAP UI5 初学者教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍试读版
  9. Teams数据统计 - 用户在线离线状态
  10. 几种常见的集成触发器(D、T、JK)
  11. 神经网络与推荐系统初步简介
  12. python中函数startswith的用法_Python中用startswith()函数判断字符串开头的教程
  13. php while循环语句格式,PHP while 循环
  14. qq永久删除的照片怎么恢复?教你两招轻松恢复
  15. Ubuntu15.10下华南师大锐捷认证客户端的使用详解
  16. 快速移除PDF复制到WORD中的换行符
  17. 7.过渡案例:①进度条 ②小米图标翻转(父盒子一定要加初始值!!!)
  18. Linux 合并两个文件
  19. 动态 Probit 模型及 Stata 实现
  20. [蓝桥杯解题报告]第九届蓝桥杯大赛省赛2018(软件类)真题C++A组 Apare_xzc

热门文章

  1. anaconda python36 tensorflow virtualenv
  2. 前端开发负责人修炼指北
  3. UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position...的解决办法
  4. Linux C多线程编程
  5. 自动化运维 Shell
  6. 服务器自带raid功能吗,服务器的 RAID 功能介绍
  7. 加一条平行于y轴的直线_Hepco海普克应用案例—直线V型滚轮导轨广泛应用于多轴机械手...
  8. 字符设备与块设备的区别
  9. Linux 设备驱动的固件加载-转载
  10. 基于连接跟踪机制的状态防火墙的设计与实现