2013-07-01 2 views
0

최근에 웹 사이트 용 memcache를 설정했습니다. 그러나, memcache를 디자이너와 개발자를 위해 일하게하는 것은 항상 고통입니다. 나는 파일 캐싱으로 전환하고 싶다. 다른 YII memory caching 옵션 중 어느 하나가 Memcahce를 이길 수 있습니까? 아니면 적어도 동등한 성능을 수행 할 수 있습니까? 내가 사용 고려 중이 야YII : Memcache 또는 파일 캐싱?

: 언급 한 바와 같이 http://www.yiiframework.com/doc/api/1.1/CFileCache

+0

사용할 캐시가 많은 요소에 따라 다릅니다. 많은 데이터가 있습니까? 그것을 배포해야합니까? 한 서버 시스템의 경우 APC 또는 XCache가 정상이며 opcode도 캐시됩니다. –

+0

파일 캐시가 memcache보다 약간 느립니다. APC는 또 다른 좋은 옵션이지만 머신 클러스터 전체에서 제대로 작동하지 않습니다. – acorncom

답변

0

, 그것은 다소 당신이 분산 캐싱이 필요하면 따라하고 모든 환경에 정확하게 일치하는 캐시를 필요로하는 경우. 이미 데이터베이스를 사용하고 대부분의 경우 데이터 연결을 여는 경우 CDbCache을 사용할 수 있습니다.

몇 가지 환경과 다른 유형의 사용자에게 배포되는 웹 응용 프로그램이 있으므로 캐시 환경을 선택하기 위해 서버 환경 변수를 설정합니다. Redis가 프로덕션의 기본값입니다 (성능은 memcache와 매우 유사하지만 변동성이 없음). CDbCache는 다른 환경에서는 기본값이며 APC가있는 경우 APC를 선택하거나 다른 모든 것이 실패하는 경우 File을 선택할 수 있습니다. 구성에서 다음과 같이 설정할 수 있습니다.

if ($cache == 'redis') { 
    $cache_config = array(
     'class' => 'packages.redis.ARedisCache'); 
} elseif ($cache == 'apc') { 
    $cache_config = array(
     'class' => 'system.caching.CApcCache'); 
} elseif ($cache == 'file') { 
    $cache_config = array(
     'class' => 'system.caching.CFileCache'); 
} else { 
    $cache_config = array(
     'class'=>'system.caching.CDbCache', 
     'connectionID'=>'db' 
    ); 
}