## 概述
ThinkPHP5.0采用Think\Cache类统一对缓存功能提供支持。
## 设置
缓存支持采用驱动方式,所以缓存在使用之前,需要进行连接操作,也就是缓存初始化操作。
~~~
$options = [
'type'=>'File', // 缓存类型为File
'expire'=>0, // 缓存有效期为永久有效
'prefix'=>'think'
'path'=> APP_PATH.'Runtime/cache/', // 指定缓存目录
];
\think\Cache::connect($options);
~~~
或者通过定义配置参数的方式:
~~~
'cache' => [
'type' => 'File',
'path' => CACHE_PATH,
'prefix' => '',
'expire' => 0,
],
~~~
支持的缓存类型包括file、apachenote、apc、eaccelerator、memcache、secache、wincache、shmop、sqlite、db、redis和xcache
缓存参数根据不同的缓存方式会有所区别,通用的缓存参数如下:
|||
|---|---|
|type |缓存类型|
|expire |缓存有效期 (默认为0 表示永久缓存)|
|prefix |缓存前缀(默认为空)|
|length |缓存队列长度(默认为0)|
## 使用
缓存初始化之后,就可以进行相关缓存操作了。
### 设置缓存
~~~
\think\Cache::set('name',$value,3600); // 缓存标识为name的数据,有效期3600秒
~~~
### 获取缓存
获取缓存数据可以使用:
~~~
dump(\think\Cache::get('name')); // 获取缓存数据
~~~
### 删除缓存
~~~
\think\Cache::rm('name'); // 删除name标识的缓存数据
~~~
### 清空缓存
~~~
\think\Cache::clear(); // 清空缓存数据
~~~
## 缓存队列
所有缓存方式均支持缓存队列功能,也就是说,我们可以指定缓存队列的长度,超出长度后,位于队列开头的缓存数据将会被移除。
我们只需要设置length属性,例如:
~~~
$options = [
'type'=>'File', // 缓存类型为File
'expire'=>0, // 缓存有效期为永久有效
'length'=>3, // 缓存队列长度
'temp'=> APP_PATH.'Runtime/Cache/', // 指定缓存目录
];
\think\Cache::connect($options);
\think\Cache::set('name1','val1');
\think\Cache::set('name2','val2');
\think\Cache::set('name3','val3');
\think\Cache::set('name4','val4'); // name1标识的缓存数据将被移除
dump(\think\Cache::get('name1')); // 输出结果为 false
~~~
## 快捷方法
系统对缓存操作提供了快捷函数S,用法如下:
~~~
$options = [
'type'=>'File', // 缓存类型为File
'expire'=>0, // 缓存有效期为永久有效
'length'=>3, // 缓存队列长度
'path'=> APP_PATH.'Runtime/cache/', // 指定缓存目录
];
S($options); // 缓存初始化
S('name',$value,3600); // 设置缓存数据
var_dump(S('name')); // 获取缓存数据
S('name',NULL); // 删除缓存数据
~~~
还可以在设置缓存的同时进行参数设置:
~~~
S('test',$value,['expire'=>60,'path'=>APP_PATH.'Temp/','type'=>'xcache']);
~~~