koded / cache-extended
支持多种缓存技术的PSR-6缓存库。
2.0.0
2021-05-03 13:46 UTC
Requires
- php: ^8
- koded/cache-simple: 3.*
- psr/cache: ^1
Requires (Dev)
- cache/integration-tests: dev-master
- mikey179/vfsstream: ^1
- phpunit/phpunit: ^8
- predis/predis: ^1
- symfony/phpunit-bridge: ^4.4@dev
Suggests
- ext-igbinary: For Redis igbinary support
- ext-memcached: For caching in Memcached
- ext-msgpack: For de/serializing the cache data with msgpack
- ext-redis: For caching in Redis
- predis/predis: For using Redis without ext-redis extension
README
适用于PHP 7的PSR-6缓存库,使用多种缓存技术。
要求
- Linux机器
- PHP 8
推荐的缓存技术有
- Redis服务器
- Memcached
推荐的PHP模块
用于开发目的,您可以
- 内存客户端(默认)
- 文件客户端
用法
- 使用所需的缓存技术创建一个
CacheItemPoolInterface
实例 - 使用池实例操作缓存项
$cache = CachePool::use('redis'); $item = $cache->getItem('fubar'); $item->set('some value'); $item->expiresAfter(new DateTime('3 days')); $cache->save();
池实例仅创建一次。
CachePool::use()
接受底层缓存技术的特定参数。
此方法使用Koded Simple Cache包。请参阅该存储库中的README以获取特定参数。
如果您想直接使用,可以获取缓存客户端
/** $var Koded\Caching\Cache $client */ $client = $cache->client();
延迟项
要推迟保存缓存项(一次性存储所有项),您可以使用saveDeferred()
方法。这些缓存项将在您
- 执行
commit()
- 当
CacheItemPoolInterface
实例销毁时
请注意,commit()
不是原子操作。无法保证所有项都将保存,因为在save()
运行期间可能会发生任何事情(网络、客户端崩溃等)。
$cache->saveDeferred($event); $cache->saveDeferred($counter); // ... do some stuff // store this now $cache->save($dependency); // ... do more stuff $cache->saveDeferred($updates); $cache->saveDeferred($extras); // Store all deferred items $cache->commit();
许可协议
代码根据3条款BSD许可证分发。