缓存组件

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

缓存组件

缓存组件提供了一个扩展PSR-6以及实现PSR-16“简单缓存”实现缓存添加到您的应用程序。为性能和弹性设计,附带可以使用适配器的最常见的缓存后端,包括为适应从/到代理教义缓存

安装

1
美元作曲家需要symfony /缓存ob娱乐下载

或者,您可以克隆的https://github.com/ob娱乐下载symfony/cache存储库。

请注意

如果你安装这个组件之外的Symfony应用程序,你必须要求ob娱乐下载供应商/ autoload.php文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。

缓存(PSR-6)和简单的缓存(PSR-16)

该组件包括两个不同方法缓存:

PSR-6缓存:
有很多特色的缓存系统,包括缓存“池”,更多的高级高速缓存“物品”,缓存标签失效
PSR-16简单缓存:
一个简单的方法来存储,从缓存获取和删除条目。

这两种方法都支持相同缓存适配器和将给你非常相似的性能。

提示

组件还包含适配器PSR-6和PSR-16缓存之间的转换。看到适配器PSR-6和PSR-16缓存之间的互操作性

简单的缓存(PSR-16)

这部分的组件的实现PSR-16,这意味着其基本API中定义的标准是一样的。首先,创建一个缓存对象的内置缓存类。例如,基于文件系统创建一个缓存,实例化FilesystemCache:

1 2 3
使用ob娱乐下载\组件\缓存\简单的\FilesystemCache;美元缓存=FilesystemCache ();

现在你可以创建、检索、更新和删除项目使用这个对象:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/ /保存在缓存中一个新项美元缓存- >集(“stats.products_count”,4711年);/ /或与一个定制的ttl设置它/ /缓存- >设置(“统计数据。products_count”、4711、3600);/ /检索缓存项如果(!美元缓存- >有(“stats.products_count”)){/ /……项目不存在于缓存中}/ /检索存储的值项美元productsCount=美元缓存- >get (“stats.products_count”);/ /或指定一个默认值,如果不存在的关键/ / $ productsCount = $缓存- > get(的统计数据。products_count ', 100);/ /删除缓存键美元缓存- >删除(“stats.products_count”);/ /清楚* *缓存键美元缓存- >明确的();

你也可以一次处理多个项目:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
美元缓存- >setMultiple ([“stats.products_count”= >4711年,“stats.users_count”= >1356年]);美元统计数据=美元缓存- >getMultiple ([“stats.products_count”,“stats.users_count”]);美元缓存- >deleteMultiple ([“stats.products_count”,“stats.users_count”]);

可用简单的缓存(PSR-16)类

以下可用缓存适配器:

提示

找到更多关于每一个类,你可以阅读PSR-6缓存池页面。这些“简单的”(PSR-16)缓存类不相同PSR-6适配器上的页面,但每股构造函数参数和用例。

更先进的缓存(PSR-6)

使用更加先进,PSR-6缓存能力,你需要学习它的关键概念:

一个单元的信息存储为一个键/值对,关键是惟一标识符的信息和价值是其内容;
一个逻辑库缓存项。所有缓存操作(储蓄项目,寻找项目,等等)通过执行池。应用程序可以定义需要尽可能多的池。
适配器
它实现了实际缓存机制来存储文件系统中的信息,在数据库等。该组件提供了几个可以使用适配器通用缓存后端(APCu复述,教义,PDO,等等)。

基本用法(PSR-6)

这部分的组件的实现PSR-6,这意味着其基本API中定义的标准是一样的。开始缓存信息之前,创建缓存池使用任何内置的适配器。例如,基于文件系统创建一个缓存,实例化FilesystemAdapter:

1 2 3
使用ob娱乐下载\组件\缓存\适配器\FilesystemAdapter;美元缓存=FilesystemAdapter ();

现在,您可以创建、检索、更新和删除项目使用这个缓存池:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ /创建一个新的项目,试图把它从缓存中美元productsCount=美元缓存- >getItem (“stats.products_count”);/ /赋值的项目并保存它美元productsCount- >集(4711年);美元缓存- >保存(美元productsCount);/ /检索缓存项美元productsCount=美元缓存- >getItem (“stats.products_count”);如果(!美元productsCount- >isHit ()) {/ /……项目不存在于缓存中}/ /检索存储的值项美元=美元productsCount- >get ();/ /删除缓存项美元缓存- >deleteItem (“stats.products_count”);

所有支持的适配器的列表,看看缓存池和支持的适配器

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。