cache方法是3.0版本开始新增的缓存管理方法。
注意:3.1.2版本后因cache方法并入原S方法,所以cache方法不再建议使用,用S方法即可。

cache 用于缓存设置、获取、删除操作

用法
cache($name, $value='',$options=null)

参数
name(必须):如果传入数组 则表示进行缓存初始化,如果是字符串则表示缓存赋值、获取或者删除操作。
Value(可选):要设置的缓存值,如果传入null表示删除缓存,默认为空字符串。
options(可选):要设置的缓存参数,如果是数字则表示仅设置有效期

返回值
见详(根据具体的用法返回不同的值)

缓存初始化

cache方法传入数组即表示进行缓存初始化,例如:

  1. cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));

复制代码

支持的配置参数根据不同的缓存方式(由type参数设置),通用的缓存参数包括:

参数名
说明

expire
缓存有效期(时间为秒)

length
缓存队列长度

prefix
缓存标识前缀

type
缓存类型

如果没有设置type参数,则默认为文件缓存,cache方法目前可以支持的缓存类型包括File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis、Xcache和WinCache,不同缓存类型的缓存参数可以参考这里:动态缓存
缓存初始化操作后返回的是一个缓存实例化对象。
如果你没有进行缓存初始化的话,cache方法会在你进行缓存操作之前自动初始化(用系统默认的缓存方式和缓存参数),默认缓存配置参数包括:

  1. /* 数据缓存设置 */
  2. 'DATA_CACHE_TIME' => 0, // 数据缓存有效期 0表示永久缓存
  3. 'DATA_CACHE_COMPRESS' => false, // 数据缓存是否压缩缓存
  4. 'DATA_CACHE_CHECK' => false, // 数据缓存是否校验缓存
  5. 'DATA_CACHE_PREFIX' => '', // 缓存前缀
  6. 'DATA_CACHE_TYPE' => 'File', // 数据缓存类型
  7. 'DATA_CACHE_PATH' => TEMP_PATH,// 缓存路径设置 (仅对File方式有效)
  8. 'DATA_CACHE_SUBDIR' => false, // 使用子目录缓存 (根据缓存标识的哈希创建子目录)
  9. 'DATA_PATH_LEVEL' => 1, // 子目录缓存级别

复制代码

这些具体的缓存参数的用法,我们以后会在快速入门:缓存中详细描述。

缓存设置

缓存初始化之后,就可以进行缓存操作了,

  1. cache('name','value');

复制代码

会使用当前配置的缓存方式用name标识来缓存value值。
可以单独设置该缓存数据的有效期,例如:

  1. cache('name','value',3600);

复制代码

缓存数据一个小时。
为了保证缓存的安全,建议对返回值做出判断,如果缓存设置失败,则返回false,否则返回true。
3.1.2版本开始也可以直接在设置缓存的同时传入缓存设置参数,例如:

  1. cache('name','value',array('type'=>'xcache','prefix'=>'think','expire'=>600));

复制代码


获取缓存

  1. $value = cache('name');

复制代码

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

删除缓存

  1. cache('name',NULL);

复制代码

删除缓存标识为name的缓存数据。
如果要切换缓存方式,可以再次进行缓存初始化操作。
或者使用下面的方式:

  1. $cache = cache(array('type'=>'xcache','prefix'=>'think','expire'=>600));
  2. $cache->name = 'value'; // 设置缓存
  3. $value = $cache->name; // 获取缓存
  4. unset($cache->name); // 删除缓存

复制代码

如果你设置了缓存前缀的话,对应的缓存操作只是对应该缓存前缀标识的,不会影响其他的缓存。

ThinkPHP函数详解:cache方法的更多相关文章

  1. ThinkPHP函数详解:session方法

    ThinkPHP函数详解:session方法 Session方法用于Session 设置.获取.删除和管理操作. Session 用于Session 设置.获取.删除和管理操作 用法    sessi ...

  2. ThinkPHP函数详解:C方法

    C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高.了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用PH ...

  3. ThinkPHP函数详解:D方法

    从本篇开始,我们会陆续给大家详细说明下框架内置函数的用法. D方法 D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持 ...

  4. ThinkPHP函数详解:cookie方法

    cookie函数也是一个多元化操作函数,完成cookie的设置.获取和删除操作. Cookie 用于Cookie 设置.获取.删除操作 用法cookie($name, $value='', $opti ...

  5. ThinkPHP函数详解:I方法

    ThinkPHP的I方法是3.1.3版本新增的,如果你是之前的3.*版本的话,可以直接参考使用3.1快速入门教程系列的变量部分. 概述 正如你所见到的一样,I方法是ThinkPHP众多单字母函数中的新 ...

  6. ThinkPHP函数详解:U方法

    U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:U('地址','参数','伪静态','是否跳转','显示域名');在模板中使用U方法而不是固定 ...

  7. ThinkPHP函数详解:M方法

    M方法用于实例化一个基础模型类,和D方法的区别在于:1.不需要自定义模型类,减少IO加载,性能较好:2.实例化后只能调用基础模型类(默认是Model类)中的方法:3.可以在实例化的时候指定表前缀.数据 ...

  8. ThinkPHP函数详解:import方法

    import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库.扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来 ...

  9. ThinkPHP函数详解:F方法

    我们已经了解了ThinkPHP中的S方法的用法,F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我 ...

随机推荐

  1. BZOJ_1084_[SCOI2005]_最大子矩阵_(动态规划)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1084 给出一个n*m的矩阵,其中m<=2,取k个子矩阵,求最大子矩阵和. 分析 1.m= ...

  2. 白书P60 - 硬币问题

    白书P60 - 硬币问题 完全背包.DP #include <iostream> #include <cstdio> #include <cstring> usin ...

  3. Guid 的几种形式

    Guid.NewGuid().ToString()得几种格式显示 1.Guid.NewGuid().ToString("N") 结果为:       38bddf48f43c485 ...

  4. 【 D3.js 选择集与数据详解 — 2 】 使用data()绑定数据

    D3 中绑定数据大多是由 data() 函数来完成的,它是怎样工作的,它与 datum() 有什么区别呢? data()函数能够将数组各项分别绑定到各元素上,而且能够设置绑定的规则.data()还能够 ...

  5. c程序设计语言_习题1-11_学习单元测试,自己生成测试输入文件

    How would you test the word count program? What kinds of input are most likely to uncover bugs if th ...

  6. 一个赴美的应届毕业生Kevin,在美国做程序员的访谈

    作者MUM计算机   转载请注明 在国内IT市场人才日渐饱和且竞争激烈的今天,作为一名代号996的程序猿,你是否也会对赴美工作心生向往呢?作为国内普通院校的应届本科生年薪就能轻松破40万 (人民币), ...

  7. 字符串逆转(递归和非递归java)

    package 乒乒乓乓; public class 递归逆转字符串 {    //非递归逆转    public static String reverse(String s)    {       ...

  8. Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程

    处理流程:   方法原型: (defn sync-processes [supervisor]) 函数说明: Supervisor是一个supervisor-data对象. 从local-state中 ...

  9. 实用Yii扩展

    可以去官方搜索Yii扩展:Extensions | Yii PHP Framework http://www.yiiframework.com/extensions/?tag=tree Yii che ...

  10. iOS 开发中使用到的小技巧汇总

    国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线:     self.tableVie ...