ThinkPHP官网首页

ENGLISH

Manual

 动态缓存

为了进一步简化缓存存取操作,ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。例如:

// 使用data标识缓存$Data数据



PHP代码


  1. S('data',$Data);   

  2. // 缓存$Data数据3600秒   

  3. S('data',$Data,3600);   

  4. // 获取缓存数据   

  5. $Data = S('data');   

  6. // 删除缓存数据   

  7. S('data',NULL);  



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



PHP代码


  1. 'DATA_CACHE_TYPE'=>'Xcache'  



通过上面的定义,相同的代码就会使用Xcache方式来缓存了,而事实上,代码并没有任何改变。

当然,我们还可以在S方法里面显式的指定缓存方式,例如 



PHP代码


  1. S('data',$Data,3600,'File');   

  2. // 或者动态切换缓存方式   

  3. C('DATA_CACHE_TYPE','Xcache');   

  4. S('data',$Data,3600);   

  5. $data = S('data');   

  6. // 操作完成后切换会默认的缓存方式   

  7. C('DATA_CACHE_TYPE','File');  



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



PHP代码


  1. 'DATA_CACHE_SUBDIR'=>true  



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



PHP代码


  1. 'DATA_PATH_LEVEL'=>2  



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