많은 ASP.NET 오늘날 애플리케이션은 트래픽이 많고 수만 명의 사용자가 사용합니다. 이러한 애플리케이션은 특히 네트워크 트래픽이 높을 때 데이터베이스 액세스가 느리기 때문에 성능 문제에 직면합니다. 수천 명의 사용자가 이러한 애플리케이션에 액세스하고 있기 때문에 이러한 대기 시간은 이제 감당할 수 없게 되었습니다.
이 성능 제약을 해결하기 위해 ASP.NET 및 ASP.NET Core 빠른 액세스를 위해 애플리케이션 데이터를 메모리에 저장하고 데이터베이스 트립을 줄이는 "ASP.NET Cache"라는 기본 제공 캐싱 메커니즘을 제공합니다. 따라서 애플리케이션의 성능이 향상됩니다.
NCache 세부 정보 ASP .NET 성능 .NET Core
기본 제공 ASP.NET 캐싱에는 제한이 있음
그러나 기본 제공 ASP.NET 캐시가 ASP.NET 응용 프로그램의 작업자 프로세스 내에 있는 독립 실행형 내부 프로세스 캐시라는 문제가 있습니다. 결과적으로 단일 서버 환경에서만 유용합니다.
다음은 ASP.NET 캐시의 몇 가지 제한 사항입니다.
- 동기화되지 않은 여러 캐시 인스턴스: ASP.NET 캐시는 ASP.NET 앱 프로세스의 일부이므로 여러 ASP.NET 앱에서 실행되는 캐시 인스턴스의 동기화를 허용하지 않습니다. 이로 인해 데이터 무결성 문제가 발생합니다.
- NET 작업자 프로세스 재활용: ASP.NET 캐시는 처리 중이므로 ASP.NET 작업자 프로세스가 재활용되면 캐시된 모든 데이터가 손실됩니다. 그런 다음 캐시를 데이터 소스에서 다시 로드해야 하므로 성능이 크게 저하됩니다.
- 제한된 작업자 프로세스 메모리 크기: ASP.NET 캐시는 ASP.NET 앱 작업자 프로세스의 일부입니다. 따라서 캐싱에 사용할 이 프로세스의 메모리는 제한되어 있습니다.
솔루션: 분산 캐시를 사용한 ASP.NET 캐싱
ASP.NET 캐싱의 이러한 제한 사항에 대응하려면 다음과 같은 분산 캐시가 필요합니다. NCache 여러 서버의 자체 프로세스에 상주하며 웹 팜에서 캐시를 동기화하는 메커니즘도 제공합니다.
다음은 다음과 같은 분산 캐시의 방법입니다. NCache ASP.NET 캐싱 문제를 해결합니다.
- 분산 캐시는 데이터 무결성 문제를 해결하는 여러 ASP.NET 앱 인스턴스에서 생성된 모든 캐시 인스턴스를 동기화합니다.
- out-proc(out-of-process) 캐시이므로 여러 서버 및 작업자 프로세스에서 공유할 수 있습니다.
- 높은 확장성으로 프로세스 제한이 없어 원하는 만큼의 메모리를 사용할 수 있습니다. 또한 원하는 만큼 많은 캐시 서버를 보유할 수 있습니다.
- ASP.NET 앱 캐싱 서버를 실시간으로 확장할 수 있습니다.
- NCache 또한 성능 문제 없이 고도로 지능적인 데이터 복제 시스템을 갖추고 있습니다. 효율적인 데이터 복제 기능으로 데이터 손실 문제 없이 안심할 수 있습니다.
NCache 세부 정보 ASP .NET 성능 ASP.NET Core 퍼포먼스
분산 캐시와 함께 ASP.NET 캐싱을 사용하는 방법?
NCache 데이터를 가져오는 데 사용할 수 있는 다양한 유형의 캐싱을 제공합니다. ASP.NET 캐싱으로 실행 중인 앱.
앱 데이터 캐싱
데이터 소스에서 자주 가져와야 하는 앱 데이터는 데이터 캐싱을 사용하여 ASP.NET 애플리케이션에 캐시하여 자주 액세스하는 데이터에 대한 응답 시간을 줄일 수 있습니다. 여기에는 아래 예와 같이 Product 클래스 개체와 같은 사용자 정의 개체 데이터가 포함됩니다. 제품 개체는 처음으로 데이터베이스에서 가져온 다음 캐시에 추가되고 다음에 데이터에 액세스할 때 캐시에서 가져옵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using Alachisoft.NCache.Client; ... ICache _cache = CacheManager.GetCache("demoCache"); string key = "Product:1001"; // Search for key in cache var result = _cache.Get<string>(key); // If it doesn't exist, fetch from DB and add to cache if (result == null) { var product = LoadProductFromDB(1001); CacheItem item = new CacheItem(product); _cache.Add(key, item); } |
NCache 세부 정보 ASP.NET 캐싱 ASP.NET Core 세션
ASP.NET 세션 상태 캐싱
당신이 사용할 수 세션 캐싱 ASP.NET 응용 프로그램에 대한 사용자 관련 데이터를 저장합니다. 세션 데이터는 ASP.NET 앱의 사용자 상호 작용에 속합니다. 예를 들어 전자 상거래 비즈니스는 ASP.NET 캐시가 다운되는 경우 세션 손실을 용납할 수 없습니다. 따라서 플러그를 꽂을 수 있습니다. NCache 데이터 손실을 방지하기 위해 ASP.NET 응용 프로그램에.
사용 NCache ASP.NET 캐싱의 경우 프로그래밍 작업이 필요하지 않습니다. 다음 구성을 추가하기만 하면 됩니다. 웹.구성 귀하의 응용 프로그램:
1 2 3 4 5 6 7 8 9 |
... <assemblies> <add assembly ="Alachisoft.NCache.SessionStoreProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> ... |
ASP.NET에서 세션 상태 캐싱을 사용하도록 세션 상태 구성을 수정합니다. ~ 안에 웹.구성 다음 섹션을 추가하십시오.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<configuration> ... <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" cacheName="demoCache" sessionAppId="NCacheApp" exceptionsEnabled="true" writeExceptionsToEventLog="false" enableLogs="false" enableSessionLocking="true" sessionLockingRetry="-1" emptySessionWhenLocked="false" /> </providers> </sessionState> ... </configuration> ... |
NCache 세부 정보 ASP.NET 세션 캐싱 ASP.NET 세션 캐싱 문서
ASP.NET View State 캐싱
ASP.NET View State 클라이언트 측 상태 관리 메커니즘을 제공합니다. 클라이언트 요청에 대한 전체 왕복 사이에 페이지 및 제어 값을 보존하는 데 도움이 됩니다. 당신은 저장할 수 있습니다 ASP.NET view state 웹 서버에서 고유 ID를 다시 브라우저로 보냅니다. 이 ID는 권리를 찾을 것입니다 ASP.NET view state 캐시에서.
달성 ASP.NET view state 캐싱 NCache 매우 쉽습니다. 다음은 추가해야 할 구성의 일부입니다. 웹.구성 ASP.NET 응용 프로그램의:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <ncContentOptimization> <settings viewstateThreshold="12" enableViewstateCaching="true" enableTrace="false" groupedViewStateWithSessions="false" maxViewStatesPerSession="5" > <cacheSettings cacheName="demoCache"> <expiration type="None" duration="100" /> </cacheSettings> </settings> </ncContentOptimization> ... |
NCache 세부 정보 ASP.NET View State 캐싱 NCache 기술 문서
ASP.NET 출력 캐싱
자주 액세스하는 웹 페이지의 경우 다음을 사용할 수 있습니다. 출력 캐싱 이러한 특정 페이지에 대한 응답 시간을 개선합니다. ASP.NET의 출력 캐싱 시스템은 쿼리 문자열 매개변수 및 브라우저 유형과 같은 다양한 매개변수에 따라 다양한 버전의 페이지 콘텐츠를 캐시합니다.
다음을 사용하여 출력 캐싱을 활성화할 수 있습니다. NCache 코드 변경 없이 ASP.NET 응용 프로그램에서 다음을 연결하기만 하면 됩니다. 웹.구성:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <caching> <outputCache defaultProvider ="NOutputCacheProvider"> <providers> <add name="NOutputCacheProvider" type= "Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a53769" cacheName="demoCache" exceptionsEnabled="true"enableDetailLogs="false" enableLogs="true" writeExceptionsToEventLog="true"/>" </providers> </outputCache> </caching> ... |
NCache 세부 정보 NCache 출력 캐싱 문서 ASP.NET 출력 캐시
결론
요약하면 다음과 같은 분산 캐시 NCache ASP.NET에서 캐싱을 처리하도록 확장성, 안정성 및 성능이 최적화되어 있습니다. ASP.NET 캐싱의 모든 한계를 극복하는 데 필요한 모든 기능을 갖추고 있으며 ASP.NET 캐싱을 걱정하지 않고 자체적으로 처리할 수 있는 유일한 분산 캐시입니다. 모든 종류의 캐싱을 사용할 수 있습니다. NCache, 성능 향상을 보장하여 애플리케이션에 필요한 모든 유형의 데이터를 쉽게 캐시할 수 있습니다.
아주 좋은 기사, 론. ASP.NET 캐싱에 대해 자세히 설명합니다. 분산 캐시 NCache 안정적이고 ASP.NET에 더 나은 성능을 제공합니다. ASP.NET 캐싱의 한계를 극복하는 데 도움이 됩니다. 이 기사는 분산 캐싱을 수행하는 방법에 대한 명확한 그림을 제공합니다.