최대 절전 모드 XNUMX 단계 캐시

Hibernate는 인기 있는 Java용 오픈 소스 객체 관계형 매핑 솔루션입니다. 성능 향상을 위해 Hibernate는 캐싱 기능도 제공합니다. Hibernate는 첫 번째 수준 캐시와 두 번째 수준 캐시의 두 가지 유형의 캐싱을 제공합니다.

첫 번째 수준 캐시는 기본적으로 내장되어 사용되지만 사용이 제한되고 액세스할 수 없으며 프로세스 내 캐시 전용입니다. XNUMX단계 캐시는 플러그형 아키텍처를 제공하며, 이는 타사 캐시를 Hibernate용 XNUMX단계 캐시로 사용할 수 있음을 의미합니다.

NCache 코드를 변경하지 않고 구성할 수 있는 Hibernate Second Level Cache 공급자를 제공합니다. 이렇게 하면 에서 제공하는 다양한 분산 캐싱 기능에 액세스할 수 있습니다. NCache.

NCache 최대 절전 모드를 위한 두 번째 수준 캐시 공급자로
그림 1 : NCache 최대 절전 모드를 위한 두 번째 수준 캐시 공급자로

설정 NCache 최대 절전 모드의 두 번째 수준 캐시로

설정 NCache Hibernate를 위한 XNUMX단계 캐시가 매우 쉽기 때문입니다. 실제 코드를 변경할 필요가 없습니다. 구성 파일만 편집하면 됩니다.

이제 추가하려면 NCache Hibernate용 Second Level Cache로서 hibernate.cfg.xml은 다음과 같은 방식으로 편집되어야 합니다.

  • 2nd 레벨 캐시는 다음을 설정하여 활성화해야 합니다. hibernate.cache.use_second_level_cache 재산을 사실로.
  • NCache 다음을 설정하여 Hibernate의 두 번째 수준 캐시 공급자로 구성해야 합니다. hibernate.cache.region.factory_class Hibernate 3.6 이상에 대한 JCacheRegionFactory 속성.

다음은 최대 절전 모드.cfg.xml 파일 :

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.cache.use_second_level_cache">true</property>
    <property name="hibernate.cache.region.factory_class">JCacheRegionFactory</property>
    ...
</session-factory>
</hibernate-configuration>

캐시 영역 구성

최대 절전 모드는 캐시 영역 객체를 저장하기 위해. NCache 다른 속성으로 이러한 캐시 영역을 구성할 수 있습니다. 그만큼 NCache이를 위해 Hibernate.xml 파일이 사용된다. 이 파일에는 다음에서 사용하는 지역 및 관련 구성에 대한 모든 구성 설정 및 옵션이 포함되어 있습니다. NCache.

다음은 샘플입니다 NCache영역이 구성된 Hibernate.xml 구성 파일:

<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
    <cache-regions>
        <region name="hibernator.BLL.Customer:Customer" cache-name="myPartitionedcache" priority="BelowNormal" expiration-type="Absolute" expiration-period="8"/>
        <region name="DefaultRegion" cache-name="myPartitionedcache" priority="default" expiration-type="none" expiration-period="0" />
    </cache-regions>
	...
</application-config>
</configuration>

데이터베이스 동기화 구성

NCache 다재다능하고 효율적이며 효과적인 분산 캐시입니다. .NET Framework, .NET Core, 그리고 자바. 광범위한 특징과 기능이 함께 제공됩니다. 이러한 기능 중 하나는 다음을 통한 데이터베이스 동기화입니다. SQL 종속성. 여기에서 캐시는 데이터베이스의 변경 사항을 확인하고 오래되었거나 중복된 항목을 다시 로드하거나 제거합니다.

구성 옵션이 있습니다. NCache Hibernate가 데이터베이스 동기화 기능을 사용하기 위한 두 번째 수준 캐시 공급자로. 에 다음 변경 사항을 적용해야 합니다. NCache최대 절전 모드.xml 파일 :

<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
  	... 
    <database-dependencies>
        <dependency entity-name="hibernator.BLL.Customer" type="oracle" sql-statement="select ContactName from Customer where CustomerID ='?'" cache-key-format="hibernator.BLL.Customer#[pk]" connection-string="Your Connection String"/>
    </database-dependencies>
</application-config>
</configuration>

Hibernate 쿼리 캐시 구성

최대 절전 모드는 다음과 같은 기능을 제공합니다. 쿼리 캐싱. 여기서 쿼리 결과는 Second Level Cache에 캐시됩니다. NCache 이 기능을 사용하여 이러한 쿼리를 캐시할 수 있습니다. 이 기능은 최대 절전 모드.cfg.xml 다음과 같은 방법으로 파일:

<hibernate-configuration>
  <session-factory>
  ...
  <property name="hibernate.cache.use_query_cache">true</property>
  </session-factory>
</hibernate-configuration>

쿼리 캐시를 활성화하면 기본적으로 각 쿼리가 캐시되지 않습니다. 대신 캐시해야 하는 쿼리는 코드에서 캐시 가능하도록 설정해야 합니다. 쿼리를 캐시 가능하게 설정하려면 쿼리를 생성하는 동안 쿼리의 setCacheable(true) 함수를 호출합니다. 아래 코드는 캐시 가능한 쿼리를 보여주는 예입니다.

List customerEnumerator = session.createQuery("from Customer c").setCacheable(true).list(); 

사용의 이점 NCache 최대 절전 모드의 두 번째 수준 캐시로

그 주된 이유는 다음과 같습니다. NCache 애플리케이션이 다중 서버 환경에서 실행되는 Hibernate의 Second Level Cache로 사용하기에 적합한 옵션입니다.

  • 선형 확장성: 당신의 신청은 일 수 있습니다 선형으로 스케일링됨 과 NCache 더 많은 캐시 서버 추가를 통해. 이렇게 하면 저장 용량이 증가할 뿐만 아니라 트랜잭션 속도도 증가합니다.
  • 유연한 캐시: NCache 매우 유연한 캐시입니다. 즉, 사용자에게 풍부한 캐시 세트를 제공합니다. 캐싱 토폴로지 미러 토폴로지, 복제 토폴로지, 파티션 토폴로지 및 파티션 복제 토폴로지와 같은. 각 토폴로지는 특정 시나리오와 요구 사항을 충족하므로 유연하게 사용할 수 있습니다.
  • 데이터베이스 동기화: 당신은 캐시를 데이터베이스와 동기화 SQL Server, Oracle 등. 그렇게 함으로써 캐시는 데이터베이스에서 변경 사항을 확인하고 해당 변경 사항을 기반으로 캐시에서 항목을 제거하거나 유지합니다. 이렇게 하면 캐시에 항상 최신 항목이 포함됩니다.
  • 비동기 작업: 비동기 작업 에서 사용할 수 있습니다 NCache. 이러한 작업을 통해 캐시가 업데이트될 때까지 기다리지 않고 애플리케이션에서 작업할 수 있으므로 모든 것이 빨라집니다. 이러한 작업은 Hibernate로 활성화할 수 있습니다.

다음에 무엇을할지?

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