polidog / ultracache
PHP 缓存库
0.0.1
2013-04-10 14:44 UTC
Requires
- php: >=5.3.3
This package is auto-updated.
Last update: 2024-09-21 20:48:51 UTC
README
为了释放压力和娱乐,我编写了一个PHP库,叫做乌尔特拉缓存。当我想到如果Memache服务器和AP服务器在不同的服务器上,每次从memcache获取数据都会消耗网络带宽时,我就这样想了。
当本地有缓存时,就从本地获取,没有时则从memcahe获取,感觉就像这样。
为了使其能够支持Memcached之外的其他缓存,我按照驱动器的方式进行了设计。
顺便说一下,我没有进行测试,也没有检查其功能。只是写了代码,所以在使用时请注意。如果发现问题,欢迎通过Pull Request提交。
安装
pecl install memcached
pecl install apc
配置
<?php
$config = array(
'remote' => array( // リモート側
'Memcached' => array(
'servers' => array(
array('localhost',11211), // memcachedのサーバ設定とおなじ
),
),
),
'local' => array( // AP側(実行しているPHPの鯖)
'Apc' => array(), // 別に設定は特になし、でも空配列じゃないとだめだよー
),
);
使用
我觉得它可能遵循了PSR-0规范,所以您可以用它来配合自动加载器。使用方法非常简单。
<?php
require __DIR__ . '/../vendor/autoload.php';
$config = array(
'remote' => array( // リモート側
'Memcached' => array(
'servers' => array(
array('localhost',11211), // memcachedのサーバ設定とおなじ
),
),
),
'local' => array( // AP側(実行しているPHPの鯖)
'Apc' => array(), // 別に設定は特になし、でも空配列じゃないとだめだよー
),
);
try {
$cache = new Ultracache\Ultracache($config);
$cache->set('test','cachetest'); // キャッシュをセット
var_dump($cache->get('test')); // キャッシュをゲット
} catch (Ultracache\Exception\NosupportDriverException $noe ) {
echo $noe->getMessage();
echo "\n";
}
可能的话,您可以通过查看示例来了解。当缓存不存在时,它会在memcached和本地APC缓存中保存,当缓存存在时,它只会从本地获取缓存,当本地没有时,它会从memcache获取,并将缓存放入本地APC。
我没有添加与其他AP服务器缓存同步的功能,所以建议您缓存变化不大的数据。