CodeIgniter User Guide Version 2.1.0


캐싱 드라이버

CodeIgniter는 몇 가지 가장 인기있는 형식의 빠른 동적 캐싱에 대한 래퍼를 제공합니다. 파일 기반 캐싱 이외는 특​정한 서버 요구 사항이 필요합니다.만약 필요한 요구사항이 만족되지 않으면 치명적인 예외를 던집니다.

목차

사용 가능한 드라이버

사용 예제

The following example will load the cache driver, specify다음 예제는 APC 를 캐시드라이버로 로드하고, APC를 사용할 수없는 경우 파일 기반 캐싱으로 대체합니다.

$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));

if ( ! $foo = $this->cache->get('foo'))
{
     echo 'Saving to the cache!<br />';
     $foo = 'foobarbaz!';

     // Save into the cache for 5 minutes
     $this->cache->save('foo', $foo, 300);
}

echo $foo;

함수 가이드

is_supported(driver['string'])

이 메서드는$this->cache->get()를 통해 드라이버에 접근할 때 자동으로 호출됩니다. 그러나, 만약 별도의 드라이버를 사용하는 경우이 메서드를 호출하여 드라이버가 서버환경에서 지원되는지 확인하십시오..

if ($this->cache->apc->is_supported())
{
     if ($data = $this->cache->apc->get('my_cache'))
     {
          // do things.
     }
}

get(id['string'])

이 메서드는 캐시에서 한 항목을 가져옵니다. 만약 해당 항목이없는 경우,이 메소드는FALSE 을 반환합니다.

$foo = $this->cache->get('my_cached_item');

save(id['string'], data['mixed'], ttl['int'])

캐시에 한 항목을 저장합니다. 저장에 실패하면FALSE를 리턴합니다.

옵션인 세번째 파라미터(캐시 생존시간)의 기본값은 60 초 입니다.

$this->cache->save('cache_item_id', 'data_to_cache');

delete(id['string'])

캐시에서 지정한 항목을 제거합니다.제거에 실패하면 FALSE를 리턴합니다.

$this->cache->delete('cache_item_id');

clean()

모든 캐시를 지웁니다.지우는데 실패하면 FALSE를 리턴합니다..

$this->cache->clean();

cache_info()

모든 캐시에 대한 정보를 리턴합니다.

var_dump($this->cache->cache_info());

get_metadata(id['string'])

특정 캐시 항목에 대한 상세정보를 리턴합니다.

var_dump($this->cache->get_metadata('my_cached_item'));

드라이버

Alternative PHP Cache (APC) 캐싱

위에서 설명한 함수들은 아래와 같이 특정 어댑터를 지정하지 않고 사용할 수 있습니다.:

$this->load->driver('cache');
$this->cache->apc->save('foo', 'bar', 10);

APC에 대한 더 자세한 정보는 http://php.net/apc 를 참조하십시오.

파일기반 캐싱

출력 클래스의 캐싱과 달리 파일 기반 캐싱 드라이버는 뷰파일의 일부를 캐시할 수 있습니다. 파일기반의 캐싱은 주의해서 사용해야 합니다. 디스크에 읽고 쓰는것이 너무 빈번해져 캐싱의 효과를 넘어서버릴 수 있습니다..

위에서 설명한 모든 메서드는 다음과 같이 특정 어댑터를 드라이버 로더에 지정하지 않고 사용할 수 있습니다:

 

$this->load->driver('cache');
$this->cache->file->save('foo', 'bar', 10);

메모리에 캐싱

application/config/ 에 있는 memcached.php 설정파일에 여러개의 메모리캐싱서버를 지정할 수 있습니다.

위에서 설명한 모든 메서드는 다음과 같이 특정 어댑터를 드라이버 로더에 지정하지 않고 사용할 수 있습니다::

$this->load->driver('cache');
$this->cache->memcached->save('foo', 'bar', 10);

For more information on Memcached, please see http://php.net/memcached

더미 캐시

캐시의 끝단이며, 항상 'miss'합니다.(뭔소린지 ..).데이터를 저장하지는 않지만, 캐싱이 지원되지 않는 환경에서도 캐싱 소스코드를 유지할 수 있게 합니다.