aw / zeta-cache-bundle
为symfony2框架提供的完整的Zeta Cache组件Bundle集成
Requires
- symfony/symfony: >=2.1,<3.0-dev
- zetacomponents/cache: dev-master
This package is not auto-updated.
Last update: 2020-01-24 14:56:35 UTC
README
该项目不再维护
AwZetaCacheBundle 为Symfony2 SE提供的另一个缓存组件
介绍
AwZetaCacheBundle 是Zeta Cache组件在Symfony2标准版中的完整集成。
什么是Zeta组件?
Zeta组件是一组高质量、通用、松散耦合的组件库,用于基于PHP 5开发应用程序。Zeta组件最初由eZ Systems(eZ Publish开源企业级CMS背后的公司)以“eZ Components”的名义开发,并慷慨地赞助给了Apache软件基金会以进一步开发。自2010年7月起,组件被称为“Zeta Components”。自2012年5月起,Zeta Components从Apache孵化器退休,现在在Github上开发。《eZ Systems》仍在Zeta Components的基础上构建其核心产品,并为项目做出贡献。
看看基于Symfony2全栈框架构建的eZ Publish 5平台。
什么是Zeta缓存组件?
Cache包为所有想象中的数据提供通用的缓存到所有想象中的媒体。
此实现与其他PHP缓存实现不同的地方是
- 带标签值的缓存项
- 分层缓存(缓存堆栈)
- LFU / LRU替换策略
支持的存储库
- FS
- APC
- Memcache
复杂缓存(缓存属性)
您可以使用一个或多个属性(标签)标记任何缓存项(每个属性可以有值)。属性进一步描述了缓存项。您可以通过id(可选)和属性/值(可选但推荐以加快搜索速度)的组合检索缓存项。
分层缓存(缓存堆栈)
允许您将非常快的缓存(如APC和Memcache)与较慢的缓存结合,后者通常相当大。类似的技术在CPU缓存和文件系统缓存中使用。
当数据存储在缓存栈中时,它会被存储在所有堆叠存储中。对于每个存储,都配置了一个限制,以确定缓存中可以存放多少项。如果在新项存储操作期间达到这个限制,将会从该存储中移除一定数量的项以释放空间。达到限制时释放的该限制的比例是存储的“释放率”。
对于释放项,缓存栈首先从受影响的存储中清除所有过时项。如果这还没有移除所需数量的项,将使用特殊的替换策略来释放更多项,请参见下文。
LFU / LRU 替换策略
替换策略(LFU = 最少使用)将记录对缓存项的每次访问(存储/恢复),并将首先清除访问最少的项。默认替换策略是(LRU = 最近最少使用),它将首先移除最近最少被访问的项。
请查看完整的文档缓存组件文档(其中一些链接已损坏,已提交 PR 修复。您仍然可以访问原始文档此处)
AwZetaCacheBundle:Symfony2的另一个缓存组件
这是将Zeta缓存组件集成到Symfony2中的完整集成。
它包含了所有缓存组件的功能。还有一些实用的功能
-
自动创建缓存位置:默认情况下,对于文件和内存/文件混合存储(ezcCacheStorageFileApcArray),位置应该是一个可写的现有路径。
-
独立存储的狗群效应保护:您可以为独立存储启用Anti Dog Pile保护。由于主要的保护措施仅在堆叠存储中实施。当启用时,不属于任何堆叠的存储将自动在负载环境的高负载下受到竞争条件的保护。
-
命令行工具 :
- 通过组合标签/值来删除任何缓存项。
- 重置任何缓存后端,或所有缓存后端。
-
缓存清理服务:就像命令行工具一样,您可以使用它来清除任何存储,或从您的代码中删除任何缓存项。例如,您可以使用它根据事件清除缓存项。
-
应用程序级别缓存清理:您可以在清除整个Symfony2应用程序缓存时定义要清除哪些存储后端。
-
开发者友好 DevMode:您可以在配置中配置所有缓存并检查它们是否正常工作,您可以将dev_mode设置为配置。在此模式下,所有缓存项都将始终标记为无效(因此您永远不需要手动清除缓存)。
-
当然,对于每个定义的缓存存储,都会创建一个自定义服务,并按需提供。
组件文档
组件文档位于Resources/doc/index.rst
许可协议
代码在Apache License,版本2.0下发布。您可以在Resources/meta/LICENCE
中找到。