목차
정적 또는 드문 변경을 위해 경로 캐싱을 사용하십시오
자주 변경되지 않는 캐시 데이터베이스 쿼리
무거운 템플릿에는 캐싱 뷰를 사용하십시오
HTTP 캐시 또는 미들웨어로 전체 페이지를 캐시하십시오
PHP 프레임워크 Laravel 캐싱 전략 | 라 라벨 성능 최적화

캐싱 전략 | 라 라벨 성능 최적화

Jun 27, 2025 pm 05:41 PM
laravel 성능 최적화

Laravel의 캐싱은 데이터베이스 쿼리를 줄이고 중복 처리를 최소화하여 응용 프로그램 성능을 크게 향상시킵니다. 캐싱을 효과적으로 사용하려면 다음 단계를 따르십시오. 1. PHP Artisan Route와 함께 정적 경로에 경로 캐싱을 사용하십시오. 캐시, 공개 페이지와 같은 공개 페이지에 이상적이지만 종종 경로를 변경하지는 않습니다. 2. 캐시 데이터베이스 쿼리는 캐시 :: 기억력 () (예 : 카테고리 또는 국가 목록과 같은 의미있는 키와 선택적인 관리 태그)와 같은 CACHE :: 기억 ()을 사용하여 거의 변경하지 않습니다. 3. 반복적 인 렌더링을 피하기 위해 Cache :: 기억 () 또는 패키지를 사용하여 무거운 템플릿의 캐싱 뷰 캐싱을 구현하십시오. 4. 적절한 TTL이있는 Cache.Headers를 사용하고 다양한 헤더를 사용하지 않는 한 캐싱 캐싱 사용자 별 콘텐츠를 피하십시오. 계획 및 유지 보수는 효율적인 캐싱 전략의 핵심입니다.

캐싱은 라벨 애플리케이션 속도를 높이는 가장 효과적인 방법 중 하나입니다. 데이터베이스 쿼리를 줄이고, 중복 처리를 최소화하며, 특히 무거운 부하 또는 자주 변경되지 않는 콘텐츠에 대한 응답 시간을 향상시킵니다.

캐싱 전략 | 라 라벨 성능 최적화

Laravel에서 캐싱을 효과적으로 사용하여 앱을 원활하게 실행하는 방법은 다음과 같습니다.

캐싱 전략 | 라 라벨 성능 최적화


정적 또는 드문 변경을 위해 경로 캐싱을 사용하십시오

매번 동일한 데이터를 반환하는 경로가있는 경우 (정적 설정 또는 공개 페이지가있는 API 엔드 포인트와 같은) Route Caching은 각 요청에 대한 컨트롤러 로직을 건너 뛰면 더 빠르게 제공 할 수 있습니다.

Laravel은 Route::view() 및 내장 캐싱을 통해 :

캐싱 전략 | 라 라벨 성능 최적화

 PHP 장인 루트 : 캐시

이렇게하면 모든 경로를 단일 캐시 된 파일로 컴파일하여 훨씬 빠르게로드 할 수 있습니다. 그냥 기억하십시오 :

  • 이것은 간단한 경로에만 적용됩니다.
  • 경로가 자주 변경되면 이런 식으로 캐시하지 마십시오. 모든 변경 후에 수동으로 다시 캐시해야합니다.

/about , /terms 와 같은 공개 페이지 또는 모바일 앱에서 사용하는 간단한 JSON 엔드 포인트에 가장 적합합니다.


자주 변경되지 않는 캐시 데이터베이스 쿼리

모든 데이터를 매번 신선하게 가져와야하는 것은 아닙니다. 예를 들어, 거의 변경되지 않는 국가, 카테고리 또는 설정 목록을 표시하는 경우 해당 쿼리를 캐싱하면 데이터베이스로의 반복 트립을 저장합니다.

다음과 같은 작업을 수행 할 수 있습니다.

 $ 카테고리 = cache :: 기억 ( '범주', 60, function () {
    반환 카테고리 :: all ();
});

결과를 60 분 동안 저장합니다. 데이터가 실제로 변경되는 빈도에 따라 시간을 조정할 수 있습니다.

몇 가지 팁 :

  • 나중에이 키에 의미있는 이름을 부여하여 나중에 관리하거나 플러시 할 수 있습니다.
  • 메모리를 먹지 않는 한 거대한 데이터 세트를 캐싱하지 마십시오.
  • Redis와 같은 태그 가능한 매장을 사용하는 경우 태그와 결합하여 관련 캐시를 함께 지울 수 있습니다.

무거운 템플릿에는 캐싱 뷰를 사용하십시오

일부 견해는 렌더링하는 데 시간이 걸립니다. 아마도 많은 데이터를 통과하거나 여러 부분을 포함시킬 수 있습니다. 렌더링 된 HTML이 자주 변경되지 않으면 출력을 캐싱하면 PHP가 동일한 작업을 반복적으로 수행하는 것을 절약 할 수 있습니다.

Laravel의 Cache::remember()View::make()->render() 사용하여 Laravel-View-Caching과 같은 패키지를 사용하거나 자신의 솔루션을 굴릴 수 있습니다.

예를 들어:

 echo cache :: 기억 ( 'homepage.view', 30, function () {
    return view :: make ( 'hompage')-> render ();
});

명심하십시오 :

  • 이 접근법은 개인화 된 콘텐츠에 이상적이지 않습니다. 모든 사람에게 동일한 HTML을 제공합니다.
  • 기본 데이터가 변경 될 때 캐시를 지우거나 업데이트하십시오.

HTTP 캐시 또는 미들웨어로 전체 페이지를 캐시하십시오

진정으로 정적 또는 반 정적 페이지의 경우 전체 페이지 캐싱이 가장 빠른 옵션입니다. Laravel은 이것을 상자에서 제공하지 않지만 Varnish 또는 Nginx와 같은 미들웨어 또는 리버스 프록시로 구현할 수 있습니다.

또는 Laravel의 내장 cache.headers Middleware를 사용하십시오.

 Route :: Middleware ( 'cache.headers : public; max_age = 2628000')-> group (function () {
    route :: get ( '/static-page', 'staticcontroller@show');
});

이로 인해 브라우저 (및 CDN)에게 최대 한 달 동안 페이지를 캐시하도록 Cache-Control 헤더를 설정합니다.

이것을 현명하게 사용하십시오 :

  • Vary: Cookie 또는 유사한 헤더를 설정하지 않는 한 사용자 별 콘텐츠를 캐시하지 마십시오.
  • 적절한 TTL을 설정하십시오 - 너무 길면 사용자가 너무 짧아서 너무 짧아서 성능 이점을 잃습니다.

Laravel의 캐싱 전략은 유연하고 강력하지만 특정 데이터 및 트래픽 패턴에 맞게 조정할 때 가장 잘 작동합니다. 쿼리 또는 뷰 캐싱을 사용하여 작게 시작한 다음 필요에 따라보다 고급 기술로 레이어를 시작하십시오. 복잡하지는 않지만 계획과 유지 보수가 필요합니다.

위 내용은 캐싱 전략 | 라 라벨 성능 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Laravel과 함께 소셜 네트워크를 만드는 방법 Laravel과 함께 소셜 네트워크를 만드는 방법 Sep 01, 2025 am 06:39 AM

예, YouCancreateAcialnetworkwithLaravelByFollowingThesSteps : 1. SetuplaravelusingComposer, ConfiguretHe.envfile, enableAuthenticationViabreeze/jetstream/fortify, Andrunmigrations foruserManagement.2.implementcorefeatincludingusproffiles

Laravel의 작업 일정을 사용하는 방법 Laravel의 작업 일정을 사용하는 방법 Aug 31, 2025 am 06:07 AM

Laravel의 작업을 예방하는 시스템은 PHP를 통해 타이밍 작업을 정의하고 관리 할 수 ​​있습니다. 서버 Crontab을 수동으로 편집하지 않고 서버에 1 분에 한 번만 실행되는 CRON 작업 만 추가하면됩니다 : *CD/PATH-to-YOURPROJECT && PHPARTISANSCHEDUL : RUN >>/dev/null2> & 1, 그리고 모든 작업은 일정 구성에서 구성되어 있습니다. 1. 작업 정의는 $ 일정과 같은 명령, 전화 또는 실행 방법을 사용할 수 있습니다.

Laravel에서 다형성 관계로 작업하는 방법 Laravel에서 다형성 관계로 작업하는 방법 Aug 25, 2025 am 10:56 AM

다형성 상관 관계 제시자 라벨로 아라 모드 리크 커먼 토리마다 벨롱 곤트 류드 렘 델스 슈카 스파 스 포스트, 비디오, oruserusingasingLeassociation.2. oruserusingAdAsingLeassociation.2

Laravel으로 모바일 앱 백엔드를 구축하는 방법 Laravel으로 모바일 앱 백엔드를 구축하는 방법 Sep 02, 2025 am 08:34 AM

Laravel을 사용하여 모바일 백엔드를 구축하려면 먼저 프레임 워크를 설치하고 데이터베이스 환경을 구성해야합니다. 2. Routes/API.php에서 API 경로를 정의하고 리소스 컨트롤러를 사용하여 JSON 응답을 반환합니다. 3. Laravelsanctum을 통해 API 인증을 구현하여 모바일 저장 및 인증을위한 토큰을 생성합니다. 4. 파일을 업로드 할 때 파일 유형을 확인하고 공개 디스크에 저장하고 외부 액세스를위한 소프트 링크를 만듭니다. 5. 생산 환경에는 HTTPS, 현재 한도 설정, CORS 구성, API 버전 제어를 수행하고 오류 처리를 최적화해야합니다. API 리소스, 페이징, 큐 및 API 문서 도구를 사용하여 유지 관리 및 성능을 향상시키는 것이 좋습니다. Laravel을 사용하여 금고를 구축하십시오.

Laravel에서 '기억'기능을 구현하는 방법 Laravel에서 '기억'기능을 구현하는 방법 Aug 31, 2025 am 08:53 AM

사용자 테이블에 remember_token 열이 있는지 확인하십시오. Laravel의 기본 마이그레이션에는 이미이 필드가 포함되어 있습니다. 그렇지 않다면, 마이그레이션을 통해 추가됩니다. 2. 로그인 양식에 이름을 기억하는 확인란을 추가하여 "기억"옵션을 제공하십시오. 3. 지속적인 로그인을 활성화하기 위해 수동 인증 중에 기억 매개 변수를 Auth :: ritch () 메소드로 전달합니다. 4. "Remember Me"는 기본적으로 5 년 동안 지속되며 config/auth.php의 configuration 항목을 통해 사용자 정의 할 수 있습니다. 5. Laravel은 비밀번호가 변경되거나 사용자 삭제 될 때 Semem_token을 자동으로 무효화합니다. 생산 환경에서 보안을 보장하기 위해 HTTP를 사용하는 것이 좋습니다. 6

Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Sep 21, 2025 am 06:04 AM

Laravelusesmonologtomessagesviathelogfacade, witlefaultLogsStoredInstorage/logss/laRavel.log.configureChannelSinconfig/logging.phptocontroloutput; thedefaultStackChannelAggatesmultipleAndlerLerslikesingle, whitesLog

더 나은 성능을 위해 VUE의 Lazy Load 구성 요소를 사용하는 방법 더 나은 성능을 위해 VUE의 Lazy Load 구성 요소를 사용하는 방법 Sep 02, 2025 am 03:28 AM

usedefineasynccomponentforlazyloadingnon-routecomponentsinvue3bywrappingAdynamicimport, whithEnitialBundizeanDimProvesLoadTime.2.inVuerouter, ApplyDynamicMportSdirectlyToroutEcomponentsSotheylOnlyAvigatedto, asVuerUnatialIvelyAniale

Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Sep 17, 2025 am 06:38 AM

AcountryCanaccessAllPostsTroughsUssUshoussUsinghasmanythrough.forexample, withcountries, 사용자 및 포스트 스테이블 링크는 thecountryModelDefinesAhasmanythroughroughlationSphipostviAuser, enableficientindirectDatarectrievalacrosstwoone-to-manyelatio

See all articles