网站地图    收藏   

主页 > 后端 > thinkphp教程 >

ThinkPHP中的动态缓存(S方法)和快速缓存(F方法

来源:自学PHP网    时间:2014-11-28 23:17 作者: 阅读:

[导读] 系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式 例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache),对于File方式缓存下的缓存目录...

ThinkPHP中的动态缓存(S方法)和快速缓存(F方法)

系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式.例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache).

对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式.

'DATA_CACHE_SUBDIR'=>true   

还可以设置哈希目录的层次,例如

'DATA_PATH_LEVEL'=>2  

就可以根据缓存标识的哈希自动创建多层子目录来缓存.

S方法支持缓存有效期,在很多情况下,可能我们并不需要有效期的概念,或者使用文件方式的缓存就能够满足要求,所以系统还提供了一个专门用于文件方式的快速缓存方法F方法,F方法只能用于缓存简单数据类型,不支持有效期和缓存对象,使用如下:

  1. //快速缓存Data数据,默认保存在DATA_PATH目录下面     
  2.       F('data',$data); 
  3.     //快速缓存Data数据,保存到指定的目录    
  4.       F('data',$data,TEMP_PATH); 
  5.       F('user/data',$data); 
  6.     //删除缓存数据 
  7.       F('data',null); 
  8.     //获取缓存数据 
  9.       $data=F('data'); 

配置文件config.php:

  1. //动态缓存,缓存文件存在于\Runtime\Temp 
  2. 'DATA_CACHE_TYPE'=>'file'
  3. 'DATA_CACHE_TIME'=>'3600'
  4. //'DATA_CACHE_SUBDIR'=>true,//开启子目录 
  5. //'DATA_CACHE_LEVEL'=>3,//设置子目录的层次 

Action文件:

  1. function view(){ 
  2.         //缓存 
  3.         //$cache=Cache::getInstance('缓存方式','缓存参数'); 
  4.         //$cache=Cache::getInstance('Xcache',array('expire'=>60)); 
  5.         //$cache->set('名字','值');或者$cache->name='值'; 
  6.         //$value=$cache->get('名字');或者$value=$cache->name; 
  7.         //$cache->rm('名字');或者unset($cache->name); 
  8.         
  9.         //S('名字','数据','3600','类型')缓存快捷方法 
  10.           
  11.         $user=M('haodetong'); 
  12.         
  13.         $value=S('list'); 
  14.         if(emptyempty($value)){ 
  15.             $list=$user->select(); 
  16.             
  17.             S('list',$list,3600); 
  18.             echo '这个是直接从数据库中读取的文件';    
  19.             dump($list); 
  20.         }else
  21.             echo '这个是缓存文件'
  22.             dump($value); 
  23.         } 
  24.        
  25.     } 

第一次访问时如下图:

\

再次刷新后如下图:

\

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论