Use object cache for member point

오브젝트 캐시 사용시 회원 포인트를 캐시에 저장하도록 변경하여
불필요한 캐시 파일이 다량으로 생성되는 것을 방지함.
This commit is contained in:
Kijin Sung 2017-12-19 23:53:30 +09:00
parent 4b0a2c512e
commit 2f3f1d4be0
2 changed files with 35 additions and 7 deletions

View file

@ -683,11 +683,18 @@ class pointController extends point
$oDB->commit();
// Cache Settings
$cache_key = sprintf('member:point:%d', $member_srl);
$cache_path = sprintf('./files/member_extra_info/point/%s/', getNumberingPath($member_srl));
FileHandler::makedir($cache_path);
$cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl);
FileHandler::writeFile($cache_filename, $point);
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
Rhymix\Framework\Cache::set($cache_key, $point);
Rhymix\Framework\Storage::delete($cache_filename);
}
else
{
Rhymix\Framework\Storage::write($cache_filename, $point);
}
getController('member')->_clearMemberCache($member_srl);
unset(self::$_member_point_cache[$member_srl]);

View file

@ -39,12 +39,23 @@ class pointModel extends point
return self::$_member_point_cache[$member_srl];
}
// Get from object cache
$cache_key = sprintf('member:point:%d', $member_srl);
if (!$from_db)
{
$point = Rhymix\Framework\Cache::get($cache_key);
if ($point !== null)
{
return $point;
}
}
// Get from file cache
$cache_path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s', getNumberingPath($member_srl));
$cache_filename = sprintf('%s%d.cache.txt', $cache_path, $member_srl);
if (!$from_db && file_exists($cache_filename))
{
return self::$_member_point_cache[$member_srl] = trim(FileHandler::readFile($cache_filename));
return self::$_member_point_cache[$member_srl] = intval(trim(Rhymix\Framework\Storage::read($cache_filename)));
}
// Get from the DB
@ -54,14 +65,24 @@ class pointModel extends point
if (isset($output->data->member_srl))
{
$point = intval($output->data->point);
self::$_member_point_cache[$member_srl] = $point;
FileHandler::writeFile($cache_filename, $point);
return $point;
}
else
{
return 0;
}
// Save to cache
self::$_member_point_cache[$member_srl] = $point;
if (Rhymix\Framework\Cache::getDriverName() !== 'dummy')
{
Rhymix\Framework\Cache::set($cache_key, $point);
}
else
{
Rhymix\Framework\Storage::write($cache_filename, $point);
}
return $point;
}
/**