## 到底用哪种缓存方式?
首先要看系统类型,比方有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'));
```