ASP.Net 캐싱의 모범 사례

캐싱은 시스템의 리소스 소비를 최소화하여 응용 프로그램의 성능을 향상시키기 위해 ASP.Net에서 자주 채택되는 상태 관리 전략입니다. 적절하게 사용하면 wWb 페이지를 전체 또는 부분적으로 저장하여 애플리케이션의 성능을 상당히 향상시킬 수 있으며 HTTP 요청을 통해 애플리케이션의 데이터를 저장할 수도 있습니다. 캐싱을 사용하면 웹 페이지를 더 빠르게 렌더링 할 수 있으며 적절한 캐싱을 사용하면 데이터베이스 적중 또는 서버 리소스 소비를 최소화하거나 줄일 수 있습니다.

ASP.Net의 캐싱은 다음 세 가지 유형입니다.

  1. 페이지 출력 캐싱
  2. 페이지 조각 캐싱
  3. 데이터 캐싱

페이지 출력 캐싱

이것은 동일한 웹 페이지에 대한 후속 요청을 캐시에서 직접 가져올 수 있도록 웹 페이지의 복사본을 메모리 캐시에 저장하는 ASP.Net의 캐싱 형식으로, 캐시 된 출력은 응용 프로그램으로 전송됩니다. 이것은 애플리케이션의 성능을 상당히 향상시킵니다. 다음 코드 스 니펫은 페이지 출력 캐싱을 구현하는 방법을 보여줍니다.

VaryByParam 옵션은 새 캐시 항목이 필요한 Http 요청의 변수를 지정하는 데 도움이됩니다. 기타 가능한 옵션은 VaryByHeader 및 VaryByCustom입니다. OutputCache 지시문에서 위치 및 기간을 지정할 수도 있습니다.이를 사용하여 캐시 위치와 웹 페이지를 각각 캐시해야하는 기간을 지정할 수 있습니다.

페이지 조각 캐싱

페이지 조각 캐싱은 웹 페이지가 부분적으로 캐시되는 캐싱 전략입니다. 전체 웹 페이지가 아니라 웹 페이지의 조각 만 캐시됩니다. 페이지 출력 캐싱과 동일한 구문을 사용할 수 있습니다. 그러나 웹 페이지 대신 사용자 정의 컨트롤에 OutputCache 특성을 적용해야합니다. 단편 캐싱은 웹 페이지의 일부만 캐시해야 할 때 유용합니다. 일반적으로 웹 페이지에 공통 섹션과 동적 섹션이 혼합되어있는 상황에서 그렇습니다. 예를 들어, 메뉴 항목과 데이터베이스에서 자주 채우고 업데이트해야하는 특정 동적 섹션이 혼합 된 웹 페이지가있을 수 있습니다.

데이터 캐싱

ASP.Net은 나중에 검색 할 수 있도록 데이터를 캐시에 저장할 수 있도록 Cache API를 제공합니다. Cache API를 사용하여 Cache에 데이터를 저장하는 구문은 다음과 같습니다.

Cache["key"] = "value";

Add 또는 Insert 메서드를 사용할 수도 있습니다. 캐시에서 항목을 원격으로 지정하려면 Cache 클래스의 Remove () 메서드를 사용할 수 있습니다. Cache 클래스의 Insert () 메서드를 사용하면 캐시 종속성을 지정할 수 있습니다. 캐시 종속성은 캐시가 채워진 데이터 저장소의 데이터가 변경 될 때 캐시가 즉시 다시 채워지도록하는 전략입니다. 데이터 저장소의 데이터가 변경되면 캐시가 만료되어 캐시가 최신 데이터로 다시 채워집니다. 이 MSDN 기사에서 이에 대한 자세한 내용을 읽을 수 있습니다.

모범 사례

가능한 자주 캐시하고 애플리케이션의 모든 계층에서 데이터를 적절하게 캐시해야합니다. 데이터 캐싱을 사용할 때 캐시의 데이터가 데이터 저장소의 데이터와 동기화되도록 적절한 전략을 구현해야합니다. Memcached와 같은 분산 캐시 관리자를 활용하여 캐싱 전략을 잘 확장하고 상당한 성능 향상을 제공 할 수 있습니다. Memcached를 사용하여 대용량 데이터를 저장할 수 있습니다. 상대적으로 오래된 데이터 만 캐시하도록해야합니다. 시간이 지남에 따라 자주 변경되는 데이터를 캐시 할 필요가 없습니다. 또한 재사용 가능성이 낮은 데이터는 캐시에 저장하지 않아야합니다. SqlDependency 또는 SqlCacheDependency를 과도하게 사용해서는 안됩니다.

이제 캐싱의 단점도 알아 봅시다. 캐시 개체는 현재 응용 프로그램 도메인에서만 사용할 수 있습니다. 따라서 데이터를 캐시에 저장하고 웹 팜에서 액세스 할 수 있도록하려면 불가능합니다. 웹 팜에서 캐시의 데이터를 전역 적으로 액세스하려면 Windows Server AppFabric Caching 또는 기타 분산 캐싱 프레임 워크와 같은 분산 캐시를 활용해야합니다.

캐싱은 나중에 캐시 메모리에서 동일한 데이터를 검색 할 수 있도록 상대적으로 오래된 데이터를 메모리에 저장하여 애플리케이션의 성능을 향상시키는 강력한 메커니즘입니다. 이 주제에 대한 자세한 내용은 향후 게시물에서 실제 코드 예제와 함께 논의 할 것입니다.