Hibernate の第 XNUMX レベル キャッシュ

Hibernateは、Java用の人気のあるオープンソースのオブジェクトリレーショナルマッピングソリューションです。 パフォーマンスを向上させる目的で、Hibernateはキャッシュ機能も提供します。 Hibernateは、第XNUMXレベルのキャッシュと第XNUMXレベルのキャッシュのXNUMX種類のキャッシュを提供します。

ファーストレベルキャッシュは組み込みでデフォルトとして使用されますが、使用が制限されており、アクセスできず、インプロセスキャッシュのみです。 セカンドレベルキャッシュはプラグイン可能なアーキテクチャを提供します。つまり、サードパーティのキャッシュをHibernateのセカンドレベルキャッシュとして使用できます。

NCache コードを変更せずに構成できるHibernateの第XNUMXレベルのキャッシュプロバイダーを提供します。 そうすることで、によって提供される分散キャッシング機能の豊富なセットにアクセスできます。 NCache.

NCache Hibernateの第XNUMXレベルのキャッシュプロバイダーとして
図1: NCache Hibernateの第XNUMXレベルのキャッシュプロバイダーとして

NCache Hibernateの第XNUMXレベルのキャッシュとして

セットアップ NCache Hibernateの第XNUMXレベルのキャッシュは非常に簡単です。 実際のコードを変更する必要はありません。 編集する必要があるのは構成ファイルのみです。

今すぐ追加します NCache Hibernateの第XNUMXレベルのキャッシュとして、hibernate.cfg.xmlは次の方法で編集する必要があります。

  • 2nd レベルキャッシュは、を設定して有効にする必要があります hibernate.cache.use_second_level_cache 真としてのプロパティ。
  • NCache を設定して、Hibernateのセカンドレベルキャッシュプロバイダーとして設定する必要があります hibernate.cache.region.factory_class Hibernate3.6以降のJCacheRegionFactoryとしてのプロパティ。

これは、で行われた変更の例です。 hibernate.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>

キャッシュ領域の構成

Hibernateは キャッシュリージョン オブジェクトを保存するため。 NCache さまざまなプロパティを使用してこれらのキャッシュ領域を構成できます。 The 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、およびJava。 幅広い機能セットが付属しています。 これらの機能のXNUMXつは、データベースの同期です。 SQLの依存関係。 これは、キャッシュがデータベースに変更がないかチェックし、古いまたは冗長であることが判明したアイテムを再ロードまたは削除する場所です。

構成するオプションがあります NCache Hibernateがデータベース同期機能を使用するための第XNUMXレベルのキャッシュプロバイダーとして。 次の変更をに適用する必要があります 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クエリキャッシュ構成

Hibernateは次の機能を提供します クエリキャッシュ。 ここで、クエリの結果は第XNUMXレベルのキャッシュにキャッシュされます。 NCache この機能を使用して、このようなクエリをキャッシュできます。 この機能は、編集することで有効にできます hibernate.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 Hibernateの第XNUMXレベルのキャッシュとして

主な理由は次のとおりです NCache は、アプリケーションがマルチサーバー環境で実行されているHibernateの第XNUMXレベルのキャッシュとして使用するのに適したオプションです。

  • 線形スケーラビリティ: あなたのアプリケーションは 線形にスケーリング   NCache キャッシュサーバーを追加することで。 そうすることで、ストレージ容量が増えるだけでなく、トランザクション速度も上がります。
  • 柔軟なキャッシュ: NCache は非常に柔軟なキャッシュです。つまり、ユーザーに豊富なセットを提供します。 キャッシングトポロジ ミラートポロジ、レプリケートトポロジ、パーティショントポロジ、レプリカトポロジのパーティションなど。 各トポロジは特定のシナリオとニーズに対応しているため、柔軟性があります。
  • データベースの同期: あなたはするオプションがあります キャッシュをデータベースと同期する SQL Server、Oracleなど。そうすることで、キャッシュはデータベースに変更がないかチェックし、その変更に基づいてアイテムをキャッシュから削除または保持します。 これにより、キャッシュに常に最新のアイテムが含まれるようになります。
  • 非同期操作: 非同期操作 でご利用いただけます NCache。 これらの操作により、キャッシュが更新されるのを待たずにアプリケーションで作業できるため、すべてが高速になります。 これらの操作はHibernateで有効にできます。

次はどうする?

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。