[TOC]
# 緩存
日志類庫可以存放一些信息
## **配置文件**
```
project 應用部署目錄
├─conf 配置文件目錄
│ └─config.php 配置信息
```
## **配置信息**
```
// +----------------------------------------------------------------------
// | 緩存配置
// +----------------------------------------------------------------------
//
'cache' => [
'Default' => [
'type' => 'File',
'path' => DATA_CACHE_PATH,
'ttl' => 3600,
]
],
```
### 多緩存配置
> 以數組信息進行多個緩存配置
> 緩存支持 `File` `Redis` `MongoDB`
```
// +----------------------------------------------------------------------
// | 緩存配置
// +----------------------------------------------------------------------
//
'cache' => [
'Default' => [
'type' => 'File',
'path' => DATA_CACHE_PATH,
'ttl' => 3600,
],
'Mongodb' => [
'type' => 'Mongodb',
'host' => '127.0.0.1',
'port' => 27017,
'username' => '',
'password' => '',
],
'Redis' => [
'type' => 'Redis',
'host' => '127.0.0.1',
'port' => 27017,
'password' => '',
],
],
```
## **緩存方法類型**
緩存方法遵循PSR-16定義
| 方法 | 作用 |
| --- | --- |
| get($key, $default = null) | 獲取單個緩存信息 |
| set($key, $value, $ttl = null) | 設置緩存和緩存失效時間 |
| delete($key) | 刪除對應緩存信息 |
| getMultiple($keys, $default = null) | 獲取多個keys值的緩存信息 返回數組模式 |
| setMultiple($values, $ttl = 0) | 設置多個緩存值 和過期時間 |
| deleteMultiple($keys) | 刪除多個緩存key |
| clear() | 清空所有緩存信息 |
| has($key) | 判斷當前緩存是否存在 |
## **使用緩存**
### **使用默認緩存配置信息**
```
use denha\Cache;
Cache::set($key,$value,0);
Cache::get($key);
Cache::delete($key);
```
> Cache方法默認調用config.php配置中cache配置的第一個配置信息
### **調用指定配置信息緩存**
```
use denha\Cache;
$cache = Cache::channel('Mongodb'); // 調用名稱為Mongodb的配置信息
$cache->set($key,$value); // 使用Mongodb配置進行緩存
```
### **直接設置配置信息緩存**
```
use denha\Cache;
$config = [
'type' => 'Mongodb',
'host' => '127.0.0.1',
'port' => 27017,
'username' => 'root',
'password' => '123'
];
$cache = Cache::create($config); // 調用配置信息
$cache->set($key,$value); // 使用Mongodb配置進行緩存
```