emilio / php-cache
最小化缓存库
dev-master
2017-03-11 22:35 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- athletic/athletic: 0.1.*
- phpdocumentor/phpdocumentor: 2.8.*
- phpunit/phpunit: 4.8.*
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2024-09-18 20:28:18 UTC
README
此类提供了一种简单的基于文件系统的缓存。
开始
您可以在 examples/ 目录中看到一个简单的示例。
您也可以使用 composer 安装此包。
配置
有两个主要选项:cache_path 和 expires。
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 文件夹中的遗留测试,这些测试了性能和竞争条件抵抗。