缓存
新版的缓存支持PSR-16规范,但如果你的类库使用了PSR-6规范,那么可以安装官方提供的cache-bridge扩展来进行桥接支持。
composer topthink/cache-bridge
配置
新版的缓存机制采用多通道设计,你可以在多个不同的缓存类型之间切换操作。 首先,你需要在缓存配置文件中设置相关的缓存类型:
return [
// 默认缓存驱动
'default' => env('cache.driver', 'file'),
// 缓存连接方式配置
'stores' => [
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '',
],
'redis' => [
// 驱动方式
'type' => 'redis',
// 服务器地址
'host' => '127.0.0.1',
],
// 更多的缓存连接
],
];
然后可以通过store方法切换缓存类型:
Cache::store('redis')->set('name','value');
默认的缓存类型由default参数决定使用何种缓存。
基础使用
// 缓存在3600秒之后过期
Cache::set('name', $value, 3600);
// 获取缓存
Cache::get('name');
// 删除缓存
Cache::delete('name');
// 获取并删除缓存
Cache::pull('name');
// 清空缓存
Cache::clear();
缓存标签
可以把某些缓存数据通过标签的方式分组存放
// 设置缓存标签
Cache::tag('tag')->set('name1','value1');
Cache::tag('tag')->set('name2','value2');
// 清除tag标签的缓存数据
Cache::tag('tag')->clear();
缓存获取的时候无需区分标签,所以下面的代码是多余的
Cache::tag('tag')->get('name1');
直接使用
Cache::get('name1');
就行了,你可以同时设置多个标签,例如:
Cache::tag(['tag1', 'tag2'])->set('name1', 'value1');
Cache::tag(['tag1', 'tag2'])->set('name2', 'value2');
// 清除多个标签的缓存数据
Cache::tag(['tag1','tag2'])->clear();
跨应用支持
默认情况下,文件缓存数据是区分不同应用的,如果你希望缓存跨应用,可以设置一个统一的数据缓存path目录。
return [
'default' => 'file',
'stores' => [
// 文件缓存
'file' => [
// 驱动方式
'type' => 'file',
// 设置相同的缓存保存目录
'path' => '../runtime/file/',
],
],
];
如果你使用了文件缓存之外的其它缓存类型,默认情况下本身就是跨应用的,但你可以在不同的应用配置文件中设置缓存前缀用于区分不同的应用,避免相互影响。
return [
'default' => 'redis',
'stores' => [
// redis缓存
'redis' => [
// 驱动方式
'type' => 'redis',
// 设置前缀
'prefix' => 'user',
// 服务器地址
'host' => '127.0.0.1',
],
],
];
发表评论