休眠二级缓存

Hibernate 是一种流行的 Java 开源对象关系映射解决方案。 为了提高性能,Hibernate 还提供了缓存的特性。 Hibernate 提供了两种缓存,一级缓存和二级缓存。

一级缓存是内置的并用作默认值,但它的使用受到限制,不可访问,并且只是一个进程内缓存。 二级缓存提供了可插拔的架构,这意味着第三方缓存可以用作 Hibernate 的二级缓存。

NCache 提供 Hibernate 二级缓存提供程序,无需对代码进行任何更改即可配置。 通过这样做,您可以访问由 NCache.

NCache 作为休眠的二级缓存提供程序
图1: NCache 作为休眠的二级缓存提供程序

设置 NCache 作为 Hibernate 的二级缓存

配置 NCache 因为 Hibernate 的二级缓存非常简单。 无需更改实际代码。 只需要编辑配置文件。

现在添加 NCache 作为 Hibernate 的二级缓存,必须按以下方式编辑 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>

缓存区域配置

Hibernate 利用 缓存区域 用于存储对象。 NCache 允许配置具有不同属性的这些缓存区域。 这 NCacheHibernate.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。 它具有广泛的特性和功能。 这些功能之一是通过数据库同步 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 查询缓存配置

Hibernate 提供了一个特性 查询缓存. 这里查询的结果被缓存在二级缓存中。 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 作为 Hibernate 的二级缓存

以下是主要原因 NCache 是在应用程序在多服务器环境中运行时用作 Hibernate 的二级缓存的合适选项。

  • 线性可扩展性: 您的应用程序可以是 线性缩放 NCache 通过添加更多缓存服务器。 这样做不仅可以增加存储容量,还可以提高交易速度。
  • 灵活的缓存: NCache 是一个非常灵活的缓存,这意味着它为用户提供了丰富的 缓存拓扑 例如,镜像拓扑、复制拓扑、分区拓扑和副本拓扑的分区。 每个拓扑都迎合特定的场景和需求,从而使其灵活。
  • 数据库同步: 您可以选择 将缓存与数据库同步 例如 SQL Server、Oracle 等。通过这样做,缓存会检查数据库是否有任何更改,并根据该更改删除或保留缓存中的项目。 这可确保您的缓存包含始终是最新的项目。
  • 异步操作: 异步操作 在可用 NCache. 这些操作允许您在不等待缓存更新的情况下处理您的应用程序,从而使一切变得更快。 这些操作可以通过 Hibernate 启用。

接下来做什么?

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。