emilio/php-cache

最小化缓存库

dev-master 2017-03-11 22:35 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:28:18 UTC


README

此类提供了一种简单的基于文件系统的缓存。

了解更多(西语) | 贡献者

开始

您可以在 examples/ 目录中看到一个简单的示例。

您也可以使用 composer 安装此包。

配置

有两个主要选项:cache_pathexpires

  • cache_path 是缓存存储的目录。默认情况下(cache)是相对目录,但建议重新配置它。
  • expires 是缓存过期时间(以分钟为单位)。

重要cache_path 应该是可写的(这是显而易见的),但如果它在服务器上是公开的(不推荐这样做),您应该禁止访问它。

对于 Apache,在缓存目录中创建一个如下的 .htaccess 文件可以做到这一点:

deny from all

用法

要存储任何数据类型,您应该使用带标识符的 put 方法以及值。

Cache::put('key', 'value');

检索数据

要获取存储在缓存中的数据,您应该使用

Cache::get('key');

如果找不到项目,或者它已过期,它将返回 null

原始数据

您可以存储和检索原始数据,以防止解码和编码开销。

您应该在 put()get() 中指定它是原始数据,如下所示

Cache::put($key, $big_chunk_of_data, true);
// ...
Cache::get($key, true);

删除数据

您可以使用 delete() 方法从缓存中删除单个项目

Cache::delete($key);

您也可以刷新整个缓存以删除所有内容

Cache::flush();

竞争条件

此库通过 rename 进行原子写入,因此不应存在竞争条件。

性能

benchmarks/ 目录中有一些基准测试。

它们很简单,鼓励您编写更全面的测试。总的来说,与 memcached 或 apc 相比,在大型数据块中性能差异几乎不可察觉,但在小型数据片段中相对较高。这是由于文件系统访问开销造成的,这是预期的。

此外,还有一个贡献者在 legacy-tests 文件夹中的遗留测试,这些测试了性能和竞争条件抵抗。