nazg / hcache
提升性能的缓存
0.6.1
2020-07-03 00:06 UTC
Requires
- hhvm: ^4.62
- hhvm/hhvm-autoload: ^3.0
- hhvm/hsl: ^4.0
- hhvm/hsl-experimental: ^4.25
Requires (Dev)
- facebook/fbexpect: ^2.7.3
- hhvm/hacktest: ^2.0.0
- hhvm/hhast: ^4.0.0
This package is auto-updated.
Last update: 2024-08-29 05:05:28 UTC
README
安装
$ composer require nazg/hcache
使用
支持apc, memcached, map, void, 文件系统
使用CacheManager
<?hh use Nazg\HCache\Element; use Nazg\HCache\CacheManager; $manager = new CacheManager(); $cache = $manager->createCache('memcached'); $mc = new \Memcached('mc'); $mc->addServers([['127.0.0.1', 11211]]); $cache->setMemcached($mc); $cache->createCache('map')?->save('cache', new Element('testing', 0));
缓存使用
从缓存中检索项目
<?hh <<__Override>> public function fetch(string $id): mixed { }
检查项目是否存在
<?hh <<__Override>> public function contains(string $id): bool { }
将项目存储到缓存中
<?hh <<__Override>> public function save(string $id, Element $element): bool { }
从缓存中删除项目
删除项目
<?hh <<__Override>> public function delete(string $id): bool { }
刷新
<?hh <<__Override>> public function flushAll(): bool { }
添加自定义缓存驱动程序
<?hh use Nazg\HCache\CacheManager; use Nazg\HCache\CacheProvider; $manager = new CacheManager(); $manager->addCache('null', () ==> new NullCache()); $manager->createCache('null'); class NullCache extends CacheProvider { <<__Override>> public function fetch(string $id): mixed { return; } <<__Override>> public function contains(string $id): bool { return false; } <<__Override>> public function save(string $id, Element $element): bool { return true; } <<__Override>> public function delete(string $id): bool { return true; } <<__Override>> public function flushAll(): bool { return true; } }
使用缓存提供者
示例
FileSystemCache
<?hh use Nazg\HCache\Element; use Nazg\HCache\Driver\FileSystemCache; $cache = new FileSystemCache(); $cache->setDirectory(__DIR__ . '/../storages'); $cache->save('file', new Element('testing', 0)); $cache->fetch('file'); $cache->contains('file') $cache->flushAll();
MapCache(内存)
<?hh use Nazg\HCache\Element; use Nazg\HCache\Driver\MapCache; $cache = new MapCache(); $cache->save('map', new Element('testing', 0));
MemcachedCache
<?hh use Nazg\HCache\Element; use Nazg\HCache\Driver\MemcachedCache; $cache = new MemcachedCache(); $mc = new \Memcached('mc'); $mc->addServers([['127.0.0.1', 11211]]); $cache->setMemcached($mc); $cache->save("qwerty", new Element('testing:cache', 0));