1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

оптимизация файлового кешера - нужно тщательно протестировать

This commit is contained in:
Mzhelskiy Maxim 2009-04-27 19:57:43 +00:00
parent 4fc878ae4d
commit babbf30a96
2 changed files with 15 additions and 8 deletions

View file

@ -506,10 +506,10 @@ class Zend_Cache_Backend_File extends Zend_Cache_Backend implements Zend_Cache_B
}
break;
case Zend_Cache::CLEANING_MODE_MATCHING_TAG:
$matching = true;
$matching = false;
foreach ($tags as $tag) {
if (!in_array($tag, $metadatas['tags'])) {
$matching = false;
if (in_array($tag, $metadatas['tags'])) {
$matching = true;
break;
}
}

View file

@ -69,15 +69,15 @@ class LsCache extends Module {
'file_locking' => true,
)
);
$this->oBackendCache = new Dklab_Cache_Backend_Profiler($oCahe,array($this,'CalcStats'));
} elseif ($this->sCacheType==SYS_CACHE_TYPE_MEMORY) {
require_once('Zend/Cache/Backend/Memcached.php');
$aConfigMem=include(DIR_SERVER_ROOT."/config/config.memcache.php");
$oCahe = new Zend_Cache_Backend_Memcached($aConfigMem);
$this->oBackendCache = new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,array($this,'CalcStats')));
} else {
throw new Exception($this->Lang_Get('system_error_cache_type').": ".$this->sCacheType." (file, memory)");
}
$this->oBackendCache = new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,array($this,'CalcStats')));
/**
* Дабы не засорять место протухшим кешем, удаляем его в случайном порядке, например 1 из 50 раз
*/
@ -100,8 +100,12 @@ class LsCache extends Module {
/**
* Т.к. название кеша может быть любым то предварительно хешируем имя кеша
*/
$sName=md5(SYS_CACHE_PREFIX.$sName);
return $this->oBackendCache->load($sName);
$sName=md5(SYS_CACHE_PREFIX.$sName);
if ($this->sCacheType==SYS_CACHE_TYPE_FILE) {
return unserialize($this->oBackendCache->load($sName));
} else {
return $this->oBackendCache->load($sName);
}
}
/**
* Записать значение в кеш
@ -119,7 +123,10 @@ class LsCache extends Module {
/**
* Т.к. название кеша может быть любым то предварительно хешируем имя кеша
*/
$sName=md5(SYS_CACHE_PREFIX.$sName);
$sName=md5(SYS_CACHE_PREFIX.$sName);
if ($this->sCacheType==SYS_CACHE_TYPE_FILE) {
$data=serialize($data);
}
return $this->oBackendCache->save($data,$sName,$aTags,$iTimeLife);
}
/**