## 缓存
在`FastAdmin`插件开发中如需使用缓存,可以使用`ThinkPHP`中自带的缓存机制进行数据的缓存。
### 设置缓存
可以采用以下两种方式设置缓存,注意在插件中使用缓存,必须使用`tag`方法用于区分插件的缓存。
~~~php
//直接调用Cache的set方法
\think\Cache::tag('插件标识')->set('缓存标识','缓存数据', '缓存时长');
//使用辅助函数
cache("缓存标识", "缓存数据", "缓存时长", "插件标识");
//示例,在插件标识为mydemo下缓存一个名称为name1,数据为value1的缓存数据
//直接调用Cache的set方法
\think\Cache::tag('mydemo')->set('name1','value1', 3600);
//使用辅助函数
cache("name1", "value1", 3600, "mydemo");
~~~
### 读取缓存
可以采用以下两种方式读取缓存,注意在插件中使用缓存,必须使用`tag`方法用于区分插件的缓存。
~~~php
//直接调用Cache的get方法
\think\Cache::tag('插件标识')->get('缓存标识');
//使用辅助函数
cache("?缓存标识", "", null, "插件标识");
//示例,在插件标识为mydemo下获取缓存名称为name1的数据
//直接调用Cache的get方法
\think\Cache::tag('mydemo')->get('name1');
//使用辅助函数
cache("?name1", "", null, "mydemo");
~~~
### 删除缓存
~~~css
//删除插件标识mydemo下的指定name1缓存数据
\think\Cache::tag('mydemo')->rm('name1');
// 删除插件标识为mydemo下的所有缓存数据
\think\Cache::clear('mydemo');
~~~
### SQL数据缓存
~~~css
//获取并设置缓存
\think\Db::name('mydemo_list')->cache('sqlname1', 60, 'mydemo')->select([1, 3, 5]);
//更新数据库并清除缓存
\think\Db::name('mydemo_list')->cache('sqlname1', 60, 'mydemo')->update(['id'=>1, 'name'=>'thinkphp']);
//获取更新后的缓存数据
\think\Db::name('mydemo_list')->cache('sqlname1', 60, 'mydemo')->select([1, 5]);
~~~
### 温馨提示
在应用插件中使用缓存,务必给缓存打标签,用于区分缓存,缓存的标签务必使用`应用插件标识`