취업/CodeIgniter

[ci4] memcached 사용하기

카슈밀 2022. 4. 25. 03:56
반응형

사용 방법은 정말로 간단하다.

 

$cache = \Config\Services::cache();

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

요렇게 서비스 클래스에서 가져오던가

 

$foo = cache('foo');

요렇게 가져오던가 하는 방법이다.

 

 

일단 캐시서버를 구성해야하는데, 

 app/Config/Cache.php

에 파일이 있다.

 

여기서 

$handler

엔진을 시작할 때 기본 핸들러로 사용해야 하는 핸들러의 이름입니다. 사용 가능한 이름은: dummy, file, memcached, redis, predis, wincache.

$backupHandler

첫 번째 선택 $handler를 사용할 수 없는 경우 다음으로 로드할 캐시 핸들러입니다. 다른 핸들러는 더 복잡한 다중 서버 설정에 맞지 않을 수 있으므로, 일반적으로 항상 사용 가능한 file 핸들러를 지정합니다.

 

를 설정한다.

1번은 memcached, 2번은 file로 설정.

물론, 멤캐쉬 캐싱 서버는 미리 설정해야한다.

public $memcached = [
    'host'   => '127.0.0.1',
    'port'   => 11211,
    'weight' => 1,
    'raw'    => false,
];

그 후 

cache()->save('foo', $foo);

// 위와 같은 방법으로 설정한다.
// 따로 new memcached로 호출 할 필요 없음.

// cache()하면  서버설정이 호출된다.

// 덮어쓰기는 안되는 것 같아서, 그냥 delete로 해당 멤캐쉬 삭제하고 다시 작성하는 방식으로 해결.

 

자세한 설명은 요기

http://ci4doc.cikorea.net/libraries/caching.html?highlight=memcached 

 

캐싱 드라이버 — CodeIgniter 4.1.9 documentation

캐시된 항목의 메타 데이터, 누락된 항목인 경우 null, 기간 만료된 항목인 경우 expire 키가 있는 배열 (null인 경우 기간 만료가 아님).

ci4doc.cikorea.net

 

728x90