系统默认的缓存方式是File caching,我们可以在项目配置文件中定义其他的缓存方式,比如将默认的缓存方式改为Xcache(当然你的环境需要支持Xcache)。
ThinkPHP还针对文件模式缓存下的缓存目录下因为缓存数据太多而存在大量Files的问题给出了解决方案,可以启用hash子目录缓存模式。
' DATA _ CACHE _ SUBDIR '=真
您还可以设置哈希目录的层次结构,例如:
数据_路径_级别'=2
可以根据缓存标识的哈希自动创建多级子目录进行缓存。
s方法支持缓存的有效期。在很多情况下,我们可能不需要有效期的概念,或者我们可以通过使用文件缓存来满足需求,所以系统也提供了一种专门用于文件缓存的快速缓存方法F法。f方法只能用于缓存简单数据类型,不支持有效期和缓存对象。它的用法如下:
//快速缓存数据,默认保存在DATA_PATH目录F('data ',$data)中;//快速缓存数据并保存到指定目录F('data ',$data,TEMP _ PATH);f('用户/数据',$ data);//删除缓存数据F('data ',null);//获取缓存数据$ data=F(' data ');
config.php简介
//动态缓存,缓存文件存在于 runtime temp ' data _ cache _ type '=' file ',' data _ cache _ time'=' 3600 ',/'data _ cache _子目录'=true,//打开子目录/'data _ cache _ level'=。
操作文件:
function view(){//cache//$ cache=cache :3360 getinstance(' cache method ',' cache parameter ');//$ cache=cache :3360 getinstance(' Xcache ',array(' expire '=60));//$cache-set ('name ',' value ');或者$ cache-name=' value ';//$value=$cache-get('名字');或者$ value=$ cache-name;//$cache-rm('名字');或者取消设置($ cache-name);//S ('name ',' data ',' 3600 ',' type ')缓存快捷方式$ user=M(' haodotong ');$ value=S(' list ');if(空($ value)){ $ list=$ user-select();S('list ',$list,3600);回声“这是直接从数据库读取的文件”;dump($ list);}else{ echo '这是一个缓存文件;dump($值);}}第一次拜访如下:
再次刷新后,如下所示:
下面我们分别介绍一下ThinkPHP中F方法的快速缓存。
文件缓存可以满足要求,因此系统还提供了一种专门用于文件缓存的快速缓存方法F法。
$path='./Public/Runtime/';$ str=' asdfasdfasdaaaaaaaaaaaaaaaaaaa ';F('str/andy ',$str,$ path);
这样,将$str字符串的内容放入文件中./public/runtime/str/andy.php。
Andy.php的文档如下:
?phpreturn ' asdfasdfasdaaaaaaaaaaaaaaaaaaa ';
下面的代码是ThinkPHP缓存方法的概述。
ThinkPHP的f方法只能用于缓存简单的数据类型,不支持有效期和缓存对象。s()缓存方法支持有效期,也叫动态缓存方法。使用示例如下:
代码:如下。
复制代码如下://带数据标识符的Cache $Data数据S('data ',$ Data);//前面是缓存标记,后面是缓存数据。
代码:如下。
//缓存$Data数据3600秒(' Data ',$ data,3600);
代码:如下。
复制代码如下://删除缓存数据S('data ',NULL);//第一个参数中缓存的可分辨名称。
代码:如下。
$ cache=S($ cache name);//设置缓存标志//判断是否有这个查询缓存if(!$ cache){/$ cache是cache的标签(每个查询对应一个cache,即不同的查询有不同的cache)$ cache=$ video-where($ map)-order($ order)-limit($ limit)-select();foreach($ cache as $ key=$ value){ $ user list=$ user-where(' id=')。$ value[' user _ id '])-find();$cache[$key]['昵称']=$userlist['昵称'];} S($cachename,$cache,3600);//设置缓存{ S }的生存期($cachename,NULL);//删除缓存。