2012-06-11 3 views
2

PHP로 간단한 캐시 기능을 설정하고 싶습니다. 스크립트에서 어딘가에있는 데이터를 가져오고 모든 페이지 뷰에서 데이터를 가져 오지 않고 매시간 만 보도록하고 싶습니다.php - 간단한 캐시 기능 - 매시간 데이터 검색

나는 매시간 PHP 스크립트를 실행하는 크론 작업을 할 수 있음을 알고 있습니다.

하지만이 가져올 수있는 (또는 캐시 된) 데이터를 기반으로 페이지를 만든 PHP 스크립트 내에서 cron없이이 얻을 수 있는지 궁금 해서요. 나는 가능한 가장 간단한 해결책을 찾고있다. 정확한 것은 아닙니다.

+1

백그라운드에서이를 수행하는 유일한 방법은 Cron입니다. 그렇지 않으면 한 시간에 한 번 누군가가 느린 페이지로드를 갖게됩니다. – 472084

+0

Jleagle, 캐시 된 캐시를 먼저 표시 한 다음 모든 출력을 보낸 후에 업데이트를 실행하는 것을 방지 할 수 있습니다. – Sarke

답변

3

을하지만, 어떤 경우에 당신은 여전히 ​​몇 가지 논리가 필요합니다. PHP의 기본 파일 캐시 : 당신은 단지 $ 내용 문자열 (예를 들어, 배열 또는 객체)가없는 경우/때 unserialize 직렬화 할 필요가

if (file_exists($cache_file) and time() - filemtime($cache_file) < 3600) 
{ 
    $content = unserialize(file_get_contents($cache_file)); 
} 
else 
{ 
    $content = your_get_content_function_here(); 
    file_put_contents($cache_file, serialize($content)); 
} 

.

1

APC를 사용하지 않는 이유는 무엇입니까?
당신은

apc_store('yourkey','yourvalue',3600); 

을 수행 할 수 있습니다 그리고 당신은과 내용 PIN이 있습니다 : 나뿐만 아니라 APC를 사용합니다

apc_fetch();