浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)
2015-12-19 12:16
579 查看
系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache)
对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式。
'DATA_CACHE_SUBDIR'=>true
还可以设置哈希目录的层次,例如
'DATA_PATH_LEVEL'=>2
就可以根据缓存标识的哈希自动创建多层子目录来缓存。
S方法支持缓存有效期,在很多情况下,可能我们并不需要有效期的概念,或者使用文件方式的缓存就能够满足要求,所以系统还提供了一个专门用于文件方式的快速缓存方法F方法。F方法只能用于缓存简单数据类型,不支持有效期和缓存对象,使用如下:
//快速缓存Data数据,默认保存在DATA_PATH目录下面
F('data',$data);
//快速缓存Data数据,保存到指定的目录
F('data',$data,TEMP_PATH);
F('user/data',$data);
//删除缓存数据
F('data',null);
//获取缓存数据
$data=F('data');
配置文件config.php
//动态缓存,缓存文件存在于\Runtime\Temp
'DATA_CACHE_TYPE'=>'file',
'DATA_CACHE_TIME'=>'3600',
//'DATA_CACHE_SUBDIR'=>true,//开启子目录
//'DATA_CACHE_LEVEL'=>3,//设置子目录的层次
Action文件:
?
下面给大家单独介绍ThinkPHP 中F 方法的快速缓存
使用文件方式的缓存就能够满足要求,所以系统还提供了一个专门用于文件方式的快速缓存方法F方法
$path="../Public/Runtime/";
$str="asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa";
F("str/andy",$str,$path);
这样就把 $str 字符串这个内容放在了 ../Public/Runtime/str/andy.php 的文件中了
andy.php 的文件内容如下:
<?php
return 'asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa';
?>
下面一段代码是ThinkPHP缓存方法S()概述
thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法,使用示例如下:
代码如下:
复制代码代码如下:
// 使用data标识缓存$Data数据
S('data',$Data); //前面的是缓存标示,后面的是缓存的数据
代码如下:
// 缓存$Data数据3600秒
S('data',$Data,3600);
代码如下:
复制代码代码如下:
// 删除缓存数据
S('data',NULL); //第一个参数时缓存的标识名
代码如下:
?
对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式。
'DATA_CACHE_SUBDIR'=>true
还可以设置哈希目录的层次,例如
'DATA_PATH_LEVEL'=>2
就可以根据缓存标识的哈希自动创建多层子目录来缓存。
S方法支持缓存有效期,在很多情况下,可能我们并不需要有效期的概念,或者使用文件方式的缓存就能够满足要求,所以系统还提供了一个专门用于文件方式的快速缓存方法F方法。F方法只能用于缓存简单数据类型,不支持有效期和缓存对象,使用如下:
//快速缓存Data数据,默认保存在DATA_PATH目录下面
F('data',$data);
//快速缓存Data数据,保存到指定的目录
F('data',$data,TEMP_PATH);
F('user/data',$data);
//删除缓存数据
F('data',null);
//获取缓存数据
$data=F('data');
配置文件config.php
//动态缓存,缓存文件存在于\Runtime\Temp
'DATA_CACHE_TYPE'=>'file',
'DATA_CACHE_TIME'=>'3600',
//'DATA_CACHE_SUBDIR'=>true,//开启子目录
//'DATA_CACHE_LEVEL'=>3,//设置子目录的层次
Action文件:
?
使用文件方式的缓存就能够满足要求,所以系统还提供了一个专门用于文件方式的快速缓存方法F方法
$path="../Public/Runtime/";
$str="asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa";
F("str/andy",$str,$path);
这样就把 $str 字符串这个内容放在了 ../Public/Runtime/str/andy.php 的文件中了
andy.php 的文件内容如下:
<?php
return 'asdfasdfasdaaaaaaaaaaaaaaaaaaaaaa';
?>
下面一段代码是ThinkPHP缓存方法S()概述
thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法,使用示例如下:
代码如下:
复制代码代码如下:
// 使用data标识缓存$Data数据
S('data',$Data); //前面的是缓存标示,后面的是缓存的数据
代码如下:
// 缓存$Data数据3600秒
S('data',$Data,3600);
代码如下:
复制代码代码如下:
// 删除缓存数据
S('data',NULL); //第一个参数时缓存的标识名
代码如下:
?
相关文章推荐
- PHPIniDir使用
- 从框架看PHP的五种境界及各自的薪资待遇
- 在PHP中使用协程实现多任务调度
- [转]PHP 5.2~5.6 对照以及功能具体解释
- thinkphp实现无限分类(使用递归)
- php正则表达式教程
- PHP常用正则表达式汇总
- 求js和php怎样生成随机数,0到1之间的,保留两位小数点。
- php实现倒计时效果
- PHP MySQLi的使用
- thinkphp -ajaxpage --ajax分页
- php_scws 中文分词
- Thinkphp实现自动验证和自动完成
- php获取前一天,前一个月,前一年的时间
- YII2.0 常用查询语句
- PhpStorm提高效率的使用方法及设置
- php之smarty学习二
- wdcp/升级数据库mysql5.5/PHP5.5
- php的spl
- php7.0.1新版性能大提升尝试安装