phpwind 缓存体系研究

最近要研究phpwind,对一个大型论坛来讲,缓存的实现很重要,仔细看了代码和网上查资料,发现它的缓存分三种方式:文件、数据库、memcache,下面各个简介。
一,phpwind很多地方用到文件缓存,有存静态文件也有存php数组,这种方式优点啥是单机灵活方便,但是如果网站很大,代码分布在不同的server上,就需要文件同步来实现数据一致性,而数据共享(nfs)的问题是他写文件的时候有时候会出现文件出错,这时候导致是整个网站打不开。这个当然是小概率事件。代码调用如下:
[php]
require_once(‘../global.php’);
$data = time();
$data = array(‘data’=>time());
$data = "";
$filename = R_P.’test.txt’;
pwCache::setData($filename,$data);//保存文件
pwCache::getData($filename);//读取文件 相当于include
print_r($datasave);
pwCache::deleteData($filename);//删除文件
[/php]

/**
* 不建议使用下面的方法,除非你真的就想以真正的文件方式保存,如:小说内容,歌词
*/
[php]
pwCache::writeover($filename,$data);//写文件
$content = pwCache::readover($filename);
print_r($content);
[/php]
二,数据库cache,这种方式对数据库压力最大,个人不考虑这种。
三,memcache方式是最优的,缺点是当memcache crash 掉的时候比较麻烦。
[php]
require_once(‘global.php’);
if (Perf::checkMemcache()) {
$_cacheService = Perf::getCacheService();
$keyName = ‘test’;
$data = $_cacheService->get($keyName);//取值
if($data){
echo ‘Data from cache:’.$data;
}else{
$data = time();
$_cacheService->set($keyName,$data,3600);//设定值
}
echo $data;
$_cacheService->delete($keyName);//删除某个缓存
$_cacheService->flush();//清空所有缓存
[/php]

发布日期:
分类:PHP

发表评论

邮箱地址不会被公开。 必填项已用*标注