## 到底用哪種緩存方式?
首先要看系統類型,比方有1、內容型,2、交互型。
然后看緩存目的,比方有1、加速用戶端響應,2、降低負載
### 1、TP默認File緩存,簡單好用
```
// +----------------------------------------------------------------------
// | 緩存設置
// +----------------------------------------------------------------------
'cache' => [
// 驅動方式
'type' => 'File',
// 緩存保存目錄
'path' => CACHE_PATH,
// 緩存前綴
'prefix' => '',
// 緩存有效期 0表示永久緩存
'expire' => 0,
],
```
無需安裝組件,只需要**硬盤好點**,File緩存基本可以滿足需求
>[success]適合**沒有服務器運維經驗**以及**服務器內存配置低**的情況下使用。
### 2、redis以及memcache緩存
```
'cache' => [
// 驅動方式
'type' => 'redis',
// 服務器地址
'host' => '127.0.0.1',
// redis 端口
'port' => 6379,
// redis 密碼
'password' => '',
// 緩存前綴
'prefix' => '',
'expire' => 0,
],
```
需要按照redis以及開啟php的redis擴展,依賴內存,容易占滿內存
>[success]適合**有服務器運維經驗**以及**服務器內存配置高**,需要高并發操作(如秒殺等)的情況下使用。
### 3、yac緩存
> 不需要安裝其他組件,只需php開通擴展,基于php直接吃內存,效率當然比前面幾個高
Tp默認不支持配置,不過可以代碼中手寫,如:
```
$yac = new Yac();
$yac->add('a', 'value a');
$yac->add('b', [1,2,3,4]);
$obj = new stdClass;
$obj->v = 'obj v';
$yac->add('obj', $obj);
echo $yac->get('a'), PHP_EOL; // value a
echo $yac->a, PHP_EOL; // value a
print_r($yac->get('b'));
```