---
### 1. Laravle 的缓存
#### 缓存类型`普通缓存`
1. APC 扩展已经没有维护
2. array 使用内存作为缓存
3. databases 数据库作为缓存例如 mysql
4. file 文件作为缓存(服务小的时候)
#### `分布式缓存`
1. memcached 数据在内存中掉电丢失
2. redis 持久化缓存
3. dynamdb 亚马逊
#### 1.1 使用方法
> 在 cache.php 中启动 laravel 的驱动, 例如 file 这个驱动缓存后的是到文件中
![图片alt](/media/editor/1621944203772_20210524005802384311.png ''图片title'')
---
> #### 代码如下:
use Illuminate\Support\Facades\Cache;
//添加缓存
Cache::put('key1','value', '10'); //TTL 过期时间
Cache::put('test2','value2'); //TTL 过期时间永久有效(不推荐)
Cache::put('test3','value2', now()->addMinutes(1)); //添加一分钟的时间相对时间
//如果key存在, 则存储失败
Cache::add('key4', 'value', 10);
//删除缓存
Cache::forever('key1');
Cache::put('key1', 0); //设置过期时间为0也能删除
//其他DDL操作
Cache::has('key3');
Cache::increment('key1', 1); //累加缓存
Cache::decrement('key1', 1); //累减去
//获取缓存并删除
Cache::pull('key1');
//获取缓存, 缓存失效自动获取缓存。判断是否为空空就执行闭包把闭包中的数据存储起来
Cache::remember('key1', 60, function (){
//TODO
return ['xxx'];
});
//获取缓存
// return Cache::get('key1');
return Cache::get('key1', 'default1'); //不存在返回默认值
> #### 入股要使用 redis 则需要在 .env 中配置
REDIS_HOST=redis
REDIS_PASSWORD=laradock
REDIS_PORT=6379
> #### 这里使用了 laradock 中的 redis 如果连接使用 redis作为缓存系统
'default' => env('CACHE_DRIVER', 'redis'),
CACHE_DRIVER=redis //配置这个也可以