## 概述
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']);
~~~