오늘날 메모리 내 분산 캐시는 응용 프로그램 확장성과 성능을 향상시키는 데 도움이 되므로 다중 서버 환경에서 실행되는 응용 프로그램에 널리 보급되었습니다. 까지 .NET Framework 3.5에는 System.Web.Caching 네임스페이스 아래에 웹 응용 프로그램에서만 사용할 수 있는 ASP.NET Cache 개체가 있었습니다. 하지만, 에서 .NET Framework 4.0, .NET 4.0 캐시는 모든 유형의 .NET 애플리케이션에 대해 System.Runtime.Caching 네임스페이스 아래에 추가됩니다. .NET 4.0 캐시에는 ASP.NET 캐시와 유사한 기능이 있습니다. 그러나 ASP.NET Cache와 달리 필요에 따라 사용자 지정 방식으로 구현할 수 있는 추상 클래스 ObjectCache가 있습니다. 따라서 본질적으로 .NET 4.0 Cache는 확장할 수 있지만 ASP.NET Cache는 확장할 수 없습니다. 그리고 MemoryCache는 .NET 4.0 Cache의 기본 메모리 내 캐시 구현입니다. 다음은 예입니다.
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 |
private static ObjectCache cache = MemoryCache.Default; private CacheItemPolicy policy = null; private CacheEntryRemovedCallback callback = null; // Registering callbacks and policies… callback = new CacheEntryRemovedCallback(this.MyCachedItemRemovedCallback); policy = new CacheItemPolicy(); policy.Priority = (MyCacheItemPriority == MyCachePriority.Default) ? CacheItemPriority.Default : CacheItemPriority.NotRemovable; policy.RemovedCallback = callback; HostFileChangeMonitor changeMonitor = new HostFileChangeMonitor(FilePath); policy.ChangeMonitors.Add(changeMonitor); // Add inside cache… cache.Set(CacheKeyName, CacheItem, policy); |
.NET 4.0 Cache의 기본 구현 MemoryCache의 한 가지 제한 사항은 이것이 독립 실행형 프로세스 캐시라는 것입니다. .NET 애플리케이션이 다중 서버 환경에서 실행되는 경우 여러 서버에서 캐시를 동기화할 수 있는 분산 캐시가 필요하기 때문에 이를 사용할 수 없습니다. 그러나 다행스럽게도 .NET 4.0 캐시 아키텍처를 통해 타사 분산 캐시 솔루션을 연결하고 확장할 수 있습니다.
이러한 요구를 해결하기 위해, Alachisoft 특히 웹 팜/가든의 경우 데이터 동기화, 배포 및 확장성 문제를 해결할 수 있는 사용하기 쉬운 .NET 4.0 캐시 공급자를 구현했습니다. 이 공급자는 기본적으로 통합 NCache .NET 4.0 캐시 포함. NCache .NET용으로 널리 사용되는 엔터프라이즈급 분산 캐시입니다. 을 통해 NCache플러그인할 수 있는 .NET 4.0 캐시 제공자 NCache 분산 캐시의 이점을 얻을 수 있습니다. 얼마나 쉽게 할 수 있는지 보여 드리겠습니다. NCache 몇 단계로.
- GUI 기반을 통해 클러스터(분산) 캐시 생성 NCache 관리자. "라는 이름의 클러스터된 캐시를 생성했습니다.MyClusterCache".
- 사용할 준비가 되도록 캐시를 시작합니다.
- 참조 추가 Alachisoft.NCache.ObjectCacheProvider 라이브러리를 "에서 애플리케이션으로NCache설치 디렉터리/NCache/integration/DotNet4.0 캐시 공급자"
- 프로젝트에 다음 네임스페이스를 포함합니다.
1using Alachisoft.NCache.ObjectCacheProvider; - CacheProvider(ObjectCache에서 상속됨)를 초기화하고 캐시 이름을 아래와 같이 공급자에게 전달합니다.
1234ObjectCache _cache;string _cacheId = "MyClusterCache" ;_cache = new CacheProvider(_cacheId); - 이제 CacheProvider 명령을 사용하여 캐시에서 모든 캐시 관련 작업을 수행할 수 있습니다.
다음은 확장된 .NET 4.0의 전체 예입니다. NCache:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
ObjectCache _cache; string _cacheId = "MyClusterCache" ; // Initialize with NCache’s .NET 4.0 Cache Provider. _cache = new CacheProvider(_cacheId); // Registering callbacks and policies… NCacheFileChangeMonitor changeMonitor = new NCacheFileChangeMonitor(fileNames); CacheItemPolicy ciPolicy = new CacheItemPolicy(); ciPolicy.ChangeMonitors.Add(changeMonitor); ciPolicy.RemovedCallback += new CacheEntryRemovedCallback(onCacheEntryRemoved); //Add the dependent items in the cache. _cache.AddItems(ciPolicy, 0, totalKeys); |
NCache .NET 4.0 캐시의 구현에는 다음과 같은 ChangeMonitor의 사용자 정의 구현도 포함됩니다. NCache엔트리체인지모니터, NCache파일체인지모니터, NCacheSQLChangeMonitor 와 NCache오라클체인지모니터 항목, 파일, SQL 및 Oracle 기반 변경에 대해 각각. 을 통해 NCache의 .NET 4.0 캐시 인터페이스 구현으로 이제 .NET 4.0 캐시를 표준으로 채택하는 동시에 다중 서버 환경에서 실행되는 .NET 애플리케이션을 위한 엔터프라이즈급 분산 캐시의 이점을 누릴 수 있습니다.
안녕하세요!
NCache .Net 4.0 캐시용 ObjectCacheProvider는 공식적으로 중단되었으므로 어셈블리 Alachisoft.NCache.ObjectCacheProvider는 더 이상 함께 제공되지 않습니다. NCache 설치. 캐싱 응용 프로그램 블록 기능이 이제 내장되어 있기 때문입니다. .NET Framework 4.0 및 엔터프라이즈 라이브러리는 .Net 5.0 이후 릴리스에서 더 이상 사용되지 않습니다. 현재 .NET 캐싱 지원은 다음과 같은 타사 통합을 제한하는 공급자 모델과 함께 제공되지 않습니다. NCache 연결합니다.
당신은을 사용할 수 있습니다 NCache 객체 캐싱(Application data caching) 객체를 캐싱하기 위한 API NCache 아래 링크의 지침에 따라:
https://www.alachisoft.com/resources/docs/ncache/help/basic-cache-operations.html?mw=MjQw&st=MQ==&sct=MA==&ms=QwAAEAAAAAAAAAACASgE
안녕하세요 Iqbal님
'분산 캐시를 사용하도록 .NET 4.0 캐시를 구성하는 방법' 블로그에 제공된 코드를 구현하려고 합니다.
체험판을 다운받았습니다 NCache Enterprise 4.6.
의 참조를 추가해야 합니다. Alachisoft.NCache.ObjectCacheProvider 라이브러리를 "에서 애플리케이션으로NCache설치 디렉터리/NCache/integration/DotNet4.0 Cache Provider“하지만 볼 수 없습니다 Alachisoft.NCache내 설치 디렉토리의 통합 폴더 아래에 있는 .ObjectCacheProvider.dll.
어디에서 찾을 수 있는지 더 안내해 주시겠습니까? Alachisoft.NCache.ObjectCacheProvider.dll?
이 기능을 사용할 수 있습니까? Ncache 4.6? 그렇다면 어떻게 달성할 수 있습니까?
가능한 한 빨리 귀하의 의견을 들을 수 있기를 바랍니다.
감사합니다,
세잘