Entity Framework 두 번째 수준 캐시 NCache

Entity Framework는 Microsoft에서 널리 사용되는 .NET용 개체 관계형 매핑 프레임워크입니다. 이를 통해 도메인 개체를 통해 관계형 데이터로 작업할 수 있습니다. 또한 작성해야 하는 대부분의 데이터베이스 지속성 코드가 필요하지 않습니다.

Entity Framework의 인기로 인해 성능과 확장성이 중요한 트랜잭션이 많은 응용 프로그램에서 자주 사용되었습니다. 그러나 트랜잭션이 많은 경우 대부분 데이터베이스에 병목 현상이 발생합니다. 확장이 필요할 때 더 많은 애플리케이션 서버를 추가할 수 있는 애플리케이션 계층과 달리 데이터베이스 계층에서는 동일한 작업을 수행할 수 없기 때문입니다.

이러한 확장성을 달성하는 유일한 방법은 다음과 같은 분산 캐시를 사용하는 것입니다. NCache. NCache .NET 애플리케이션을 위한 매우 빠르고 확장 가능한 분산 캐시입니다. 이를 통해 애플리케이션 데이터를 캐시하고, 비용이 많이 드는 데이터베이스 이동을 줄이고, 애플리케이션 성능과 확장성을 향상시킬 수 있습니다.

Entity Framework는 두 번째 수준(2nd Level) 캐시 공급자 모델을 제공하지 않지만, NCache Entity Framework용 사용자 지정 ADO.NET 공급자를 구현했습니다. NCache Entity Framework 쿼리 결과를 플러그인하고 캐시할 수 있습니다. 이를 통해 코드를 변경하지 않고도 Entity Framework 애플리케이션에서 분산 캐시 사용을 시작할 수 있습니다.

문서보기

왜 사용 하는가? NCache Entity Framework 두 번째 수준 캐시로?

Entity Framework 응용 프로그램이 다중 서버 환경에서 실행 중인 경우 Entity Framework Second Level Cache로 분산 캐시가 필요합니다. 그리고, NCache 다중 서버 구성을 위한 이상적인 Entity Framework Second Level Cache이며 다음과 같은 이유로 사용해야 합니다.

  1. NCache 매우 빠릅니다. NCache 매우 빠른 분산 캐시이며 밀리초 미만의 응답 시간을 제공합니다.
  2. NCache 선형 확장성을 제공합니다. NCache 확장성 병목 현상이 발생하지 않습니다. 이를 통해 캐시 클러스터에 서버를 추가하여 선형 확장성을 달성하고 극단적인 트랜잭션 로드를 처리할 수 있습니다.
  3. 캐시 크기는 무한대로 커질 수 있습니다. NCache 캐시 파티셔닝을 제공하고 이를 위해 모든 캐시 서버의 메모리를 함께 풀링합니다. 따라서 캐시 클러스터에 더 많은 서버를 추가하기만 하면 캐시 스토리지를 확장할 수 있습니다.
  4. NCache 지능적으로 데이터 복제: NCache 성능 저하 없이 지능적으로 캐시를 복제할 수 있습니다. 따라서 캐시 서버가 다운되더라도 캐시 데이터가 손실되지 않습니다.
  5. NCache 100% 가동 시간 제공: NCache 단일 실패 지점이 없는 자가 치유 동적 캐시 클러스터가 있습니다. 결과적으로, NCache 애플리케이션이나 캐시를 중지하지 않고도 런타임에 캐시 서버를 추가하거나 제거할 수 있습니다.

NCache 프로그래밍 없이 Entity Framework Second Level Cache로

사용에 관한 가장 좋은 점 NCache Entity Framework를 사용하면 프로그래밍이 필요하지 않습니다. 애플리케이션의 구성 파일을 수정하고 다음을 지정하기만 하면 됩니다. NCache 두 번째 수준 캐시 공급자로. 다음은 app.config 변경 사항의 예입니다.

<interceptors>
	<interceptor type="Alachisoft.NCache.Integrations.EntityFramework.Caching.EFCommandInterceptor, 
	                   Alachisoft.Integrations.EntityFramework.CachingProvider" />
</interceptors>

분석 모드 및 캐싱 모드 사용

이후 NCache Entity Framework 두 번째 수준 캐시 공급자는 사용자 지정 ADO.NET 공급자로 연결되어 응용 프로그램이 Entity Framework에 발행하는 모든 다른 쿼리를 기록하는 분석 모드에서 실행할 수 있습니다. 이러한 쿼리는 이 분석 모드 동안 이 쿼리가 호출된 횟수와 함께 파일에 기록됩니다. 아래는 예입니다.

<analysis-report>
<!--Call-count = 21-->
 <query query-text="" ["SELECT FROM Products"] | 
        [stored-procedure-name = ""] 
        caching = "true"
        expiration-type="absolute" | 
        sliding = "" 
        expiration-time="180"
        dbsyncdependency = "true"/>
</analysis-report>

이렇게 하면 캐시할 쿼리와 기간을 결정할 수 있습니다. 일부 또는 모든 쿼리에 대해 데이터베이스 동기화를 지정할 수도 있습니다.

NCache Entity Framework 두 번째 수준 캐시의 기능

연결하여 NCache app.config 변경을 통해 Entity Framework 두 번째 수준 캐시 공급자를 사용하면 응용 프로그램에 대한 엔터프라이즈 수준 분산 캐시를 얻을 수 있습니다. 다음은 몇 가지 기능입니다. NCache Entity Framework 앱을 제공합니다.

  1. 캐시를 데이터베이스와 동기화: 캐시에 있는 일부 데이터는 애플리케이션이 알지 못하거나 개입하지 않고도 데이터베이스에서 변경될 수 있습니다. 그리고 이 데이터에 대해 데이터베이스 동기화 기능에 해당하는 클래스를 지정할 수 있습니다. NCache. 이를 통해 NCache 그런 다음 데이터베이스에 연결하고 데이터 변경 사항을 모니터링한 다음 자동으로 캐시를 업데이트하여 캐시의 데이터가 항상 데이터베이스와 동기화되도록 합니다. NCache SQL Server용 SqlDependency, Oracle용 OracleDependency 및 모든 OLEDB 호환 데이터베이스용 DbDependency를 제공합니다.
  2. 절대 만료: 절대 만료 NCache 캐시된 각 항목에 대해 별도로 지정되며 다음과 같은 경우 날짜-시간 값입니다. NCache 해당 항목이 자동으로 만료됩니다. 엔터티 프레임워크의 경우, NCache "간격" 값을 지정하도록 요청한 다음 "Now() + 간격" 공식을 사용하여 절대 만료에 대한 날짜-시간 값을 계산합니다.
  3. 슬라이딩 만료: 슬라이딩 만기 NCache 캐시된 항목마다 별도로 지정되며 간격 값입니다. NCache 이 간격 동안 캐시된 항목을 가져오거나 업데이트하지 않은 경우 캐시된 항목을 만료합니다. 다음을 통해 이 간격을 지정할 수 있습니다. NCache Entity Framework 두 번째 수준 캐시 공급자 구성 파일.
  4. 컴팩트 직렬화: .NET 개체가 out-of-process 또는 분산 캐시에 캐시될 때마다 먼저 직렬화되어야 합니다. 그리고 일반 .NET 직렬화는 런타임에 .NET Reflection을 사용하므로 속도가 느립니다. NCache 수업을 등록할 수 있는 방법을 제공합니다. NCache 과 NCache 애플리케이션이 캐시에 연결되면 직렬화 코드를 생성합니다. NCache 그런 다음 이 코드를 메모리에서 컴파일하고 직렬화에 사용합니다. 이는 일반 .NET 직렬화보다 거의 10배 빠릅니다. 그리고 Entity Framework에서 이 기능을 사용할 수 있습니다. Entity Framework 엔터티 클래스를 등록하십시오. NCache 컴팩트 직렬화를 위해.

사용 NCache Entity Framework 애플리케이션에서 직접

비록, 사용 NCache Entity Framework 두 번째 수준 캐시는 매우 빠르고 쉬우므로 제한된 캐시 세트만 제공합니다. NCache 특징. 그 이유는 다음과 같습니다. NCache 이는 사용자 지정 ADO.NET 공급자로 연결되어 있으며 SQL 쿼리 수준에서 처리해야 한다는 사실에 묶여 있습니다. 수많은 NCache 사용하기로 결정한 경우 사용할 수 없는 기능 NCache Entity Framework 두 번째 수준 캐시 공급자.

당신을위한 대안은 사용하는 것입니다 NCache Entity Framework 애플리케이션 내에서 직접 NCache 다른 모든 비Entity Framework .NET 애플리케이션과 마찬가지로 API 호출이 수행됩니다. 이 경로를 택하려면 약간의 프로그래밍 노력이 필요하지만 추가 프로그래밍 노력보다 이점이 더 크다고 결정할 수도 있습니다.

NCache Entity Framework 두 번째 수준 캐시에서 누락된 기능

다음은 Entity Framework Second Level Cache로 사용했을 때와 사용했을 때 놓칠 수 있는 기능 목록입니다. NCache 귀하의 응용 프로그램에서 직접.

  1. 대량 작업
  2. 캐시 종속성
    • 키 기반
    • 파일 기반
    • 관습
  3. 그룹 및 하위 그룹
  4. 태그
  5. 명명된 태그
  6. OQL(Object Query Language) 및 LINQ 기반 검색
  7. 캐시된 항목 잠금 및 잠금 해제
  8. 캐시 항목 버전 관리
  9. 스트리밍 API
  10. 연속해서 쓰기, 연속해서 쓰기, 뒤에 쓰기
  11. 이벤트 알림
    • 항목 기반(업데이트 및 제거)
    • 범용(추가, 업데이트, 제거)
    • 관습
  12. 연속 쿼리
  13. 런타임 데이터 공유
  14. 캐시 로더

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.