Repolode
mike-bronner

mike-bronner/laravel-model-caching

Eloquent 모델과 관계 쿼리를 자동으로 캐싱하고 모델이 변경되면 캐시를 무효화하는 Laravel 패키지입니다.

스타
2,378
포크
231
열린 이슈
2
마지막 커밋
3일 전

어떤 프로젝트인가요?

Model Caching for Laravel은 Eloquent 모델에 Cachable trait을 추가해 쿼리 결과, eager-loaded 관계, 집계 결과를 별도의 캐시 키를 지정하지 않고 애플리케이션 캐시에 저장합니다. 모델이 생성, 수정 또는 삭제되면 관련 캐시 항목이 자동으로 비워지며, belongsToMany 관계의 pivot 변경도 처리합니다.

이 패키지는 Redis, Memcached, APC, DynamoDB 캐시 스토어와 호환되며, 전역 또는 모델별 TTL, 쓰기가 잦은 모델의 무효화를 조절하는 쿨다운 기간, 캐시를 사용할 수 없을 때 데이터베이스로 대체하는 옵션, 테넌트별 캐시 접두사 등을 제공합니다. inRandomOrder() 또는 행 잠금을 사용하는 쿼리는 캐싱되지 않으며, trait을 사용하지 않는 관련 모델이 있으면 상위 모델 쿼리도 캐싱되지 않습니다.

PHP 8.3 이상과 Laravel 12 또는 13이 필요합니다.

핵심 기능

  • 01trait 또는 기본 모델을 통해 Eloquent 쿼리, eager load, 집계 결과를 캐싱합니다
  • 02생성, 수정, 삭제 및 pivot 변경 시 관련 캐시 항목을 자동으로 무효화합니다
  • 03Redis, Memcached, APC, DynamoDB 캐시 스토어를 지원합니다
  • 04전역 및 모델별 캐시 TTL 설정을 제공합니다
  • 05잦은 쓰기로 인한 무효화를 줄이는 쿨다운 기간을 제공합니다
  • 06캐시 백엔드가 중단되면 데이터베이스에 직접 쿼리하도록 대체할 수 있습니다

활용 사례

  • 반복되는 Eloquent 쿼리가 많은 읽기 중심 Laravel 페이지의 속도를 높일 때
  • Cache::remember 및 forget 로직을 직접 작성하지 않고 모델 데이터를 캐싱할 때
  • 테넌트별 캐시 격리가 필요한 멀티테넌트 Laravel 앱
  • AWS에서 DynamoDB를 관리형 캐시 스토어로 사용하는 애플리케이션

빠른 시작

  1. 1

    Composer로 패키지를 설치합니다

    composer require mike-bronner/laravel-model-caching
  2. 2

    모델이 상속하는 기본 모델에 Cachable trait를 추가합니다

  3. 3

    필요한 경우 설정 파일을 게시합니다

    php artisan modelCache:publish --config

사용 전 알아둘 점

  • PHP 8.3 이상 및 Laravel 12 또는 13이 필요합니다.
  • Array, File, Database 캐시 드라이버는 지원되지 않습니다.
  • Cachable을 사용하지 않는 모델의 관계를 eager load하는 쿼리는 캐시되지 않습니다.
  • DynamoDB 무효화는 논리적으로만 처리되므로 TTL 정리 전까지 오래된 행이 남습니다.

토픽

자주 묻는 질문

laravel-model-caching은(는) 무엇인가요?
Eloquent 모델과 관계 쿼리를 자동으로 캐싱하고 모델이 변경되면 캐시를 무효화하는 Laravel 패키지입니다. Model Caching for Laravel은 Eloquent 모델에 Cachable trait을 추가해 쿼리 결과, eager-loaded 관계, 집계 결과를 별도의 캐시 키를 지정하지 않고 애플리케이션 캐시에 저장합니다. 모델이 생성, 수정 또는 삭제되면 관련 캐시 항목이 자동으로 비워지며, belongsToMany 관계의 pivot 변경도 처리합니다.
laravel-model-caching은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
laravel-model-caching은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
laravel-model-caching은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. laravel-model-caching의 마지막 커밋은 2026년 11월 3일입니다.
laravel-model-caching은(는) 어디에 사용할 수 있나요?
반복되는 Eloquent 쿼리가 많은 읽기 중심 Laravel 페이지의 속도를 높일 때 Cache::remember 및 forget 로직을 직접 작성하지 않고 모델 데이터를 캐싱할 때 테넌트별 캐시 격리가 필요한 멀티테넌트 Laravel 앱 AWS에서 DynamoDB를 관리형 캐시 스토어로 사용하는 애플리케이션
laravel-model-caching는 어떻게 설치하나요?
Composer로 패키지를 설치합니다: composer require mike-bronner/laravel-model-caching 모델이 상속하는 기본 모델에 Cachable trait를 추가합니다 필요한 경우 설정 파일을 게시합니다: php artisan modelCache:publish --config
laravel-model-caching은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mike-bronner/laravel-model-caching

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트