lss / yacache
轻量级缓存(PSR-16 兼容)
1.2.0
2020-12-03 21:41 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- ext-apcu: *
- ext-redis: *
- nesbot/carbon: ^2.41
- phpstan/phpstan: ^0.12.28
- phpstan/phpstan-phpunit: ^0.12.11
- phpstan/phpstan-strict-rules: ^0.12.2
- phpunit/phpunit: ^9.2
Suggests
- ext-apcu: *
- ext-redis: *
README
PHP 7.4+ 的最小化 PSR-16 兼容缓存库
本项目的目标是
- 简约:尽可能少的代码,只提供最基本的功能,尽可能少的依赖。
- 性能:在主执行流程中移除所有非必要功能,使其运行得非常快。
- (几乎) 标准兼容性:PSR-16 没有严格的类型(目前还没有!?)。
CacheInterface
主要与 PSR-16 兼容(不支持 DateInterval $ttl) - 添加了一些微小的、可选的实用函数,以简化 API 开发,例如
increment()
用于速率限制器,remember()
用于移除样板代码行 - 质量:100% 单元测试覆盖率,phpstan max 严格,strict_types=1
为什么还要有另一个缓存,既然已经有那么多非常好的缓存了?
- https://github.com/desarrolla2/Cache 精简且清晰,但提供了打包(序列化)的额外工具
- https://github.com/terrylinooo/simple-cache 有大量的驱动程序,但有一个额外的间接层(
do*
方法) - 许多其他缓存(例如 https://github.com/symfony/cache)与 PSR-6(非常重)一起工作,然后在上面添加 PSR-16 的适配器/包装器
- ... 或者它们的代码有集群保护或其他聪明但复杂的事情,这些对于大型项目(具有更多流量)来说很棒,但对于小型项目来说则过于冗余。
欢迎提交拉取请求,但请记住上述项目目标。如果您有更复杂的需求,上述其他(编写得更好、支持更好、更成熟)的项目将是更好的选择。
安装
composer require LSS\YACache
如何使用
use LSS\YACache\RedisCache; $redis = new \Redis('127.0.0.1'); $cache = new RedisCache($redis); $value = $cache->remember('another key', 100, function () use ($database) { return $database->someExpensiveQueryResult(); });
浏览 /src
目录以获取更多驱动程序