캐시 in 라라벨

hyHA·2024년 2월 9일

캐시란

CPU를 많이 사용하거나 완료하는 데 몇 초가 걸리는 검색 또는 처리 작업의 경우 빠르게 검색할 수 있도록 검색된 데이터를 일정 시간 캐시하는 것이 일반적이다.

캐시는 일종의 중간 저장소로, 이전에 계산한 결과나 검색한 데이터를 임시로 저장해 두는 메커니즘을 말한다. 캐시는 주로 데이터나 리소스에 빠르게 액세스할 수 있도록 하여 성능을 향상시키는 데 사용된다.

캐시된 데이터는 일반적으로 Memcached 또는 Redis와 같은 매우 빠른 데이터 저장소에 저장된다

라라벨은 다양한 캐시 백엔드를 위해 Memcached, Redis , DynamoDB 및 관계형 데이터베이스와 같은 캐싱 백엔드를 지원한다. 또한 파일 기반 캐시 드라이버를 사용할 수 있으며 array 및 "null" 캐시 드라이버같은 자동화된 테스트를 위한 편리한 캐시 백엔드를 제공

캐시의 종류

  • 웹 브라우저 캐시
    웹 브라우저는 이전에 방문한 웹 페이지의 일부를 로컬에 저장하여 다음에 같은 페이지를 방문할 때 서버에서 다시 내려받지 않고 로컬에서 바로 표시한다. 이로써 웹 페이지 로딩 속도가 향상되고 트래픽이 감소된다.

  • 컴퓨터 메모리 캐시
    프로세서나 메모리와 같은 하드웨어에서 사용되는 캐시로 최근에 사용한 데이터나 명령어를 빠르게 액세스하기 위해 메모리에 저장한다.

  • 데이터베이스 캐시
    데이터베이스 시스템에서는 자주 사용되는 데이터나 쿼리 결과를 캐시에 저장하여 동일한 쿼리가 여러 번 실행될 때 빠르게 결과를 반환할 수 있도록 한다.

  • 애플리케이션 캐시
    소프트웨어 애플리케이션에서도 자주 사용되는 자원을 캐시에 저장하여 반복적인 계산을 피하고 성능을 향상시킨다.

설정

애플리케이션의 캐시 설정은 config/cache.php에서 설정하며, 이 파일에서 애플리케이션 전체에서 기본적으로 사용하려는 캐시 드라이버를 지정한다.

기본적으로 라라벨은 직렬화되고 캐시된 객체를 서버의 파일 시스템에 저장하는 file 캐시 드라이버를 사용하도록 설정되어 있다.

더 큰 애플리케이션의 경우 Memcached 또는 Redis와 같은 보다 강력한 드라이버를 사용하는 것이 좋다. 동일한 드라이버에 대해 여러 캐시 설정을 구성할 수도 있다.

조회 후 삭제

캐시에서 아이템을 찾은 뒤에 해당 아이템을 삭제할 필요가 있는 경우에는 pull 메소드를 사용한다. get 메소드와 마찬가지로, 캐시에서 아이템이 존재하지 않는 경우에는 null 이 반환된다

$value = Cache::pull('key');

아이템 삭제

캐시에서 아이템 삭제

# 캐시에서 아이템을 삭제
Cache::forget('key');

# flush 메소드를 사용하면 전체 캐시를 삭제
Cache::flush();

# 0 또는 음수로 된 만료 시간(초)을 입력하여 항목을 제거

Cache::put('key', 'value', 0);
Cache::put('key', 'value', -5);
profile
룰루랄라

0개의 댓글