NHibernate Cache
休眠 是一个开源的对象关系映射解决方案,它提供了一个框架,用于将关系数据库映射到面向对象的数据表示上 - 显着减少开发人员从数据库检索数据的工作量。此外,为了提高应用程序性能并减少数据库负载,NHibernate 提供了 NHibernate Cache 减少重复的数据库调用。
备注
此功能也可用于 NCache Professional.
第一级 NHibernate Cache
NHibernate 的一级缓存模块提供会话级进程内缓存。 会话创建后,它与会话缓存关联。 此外,当从数据库加载对象时,会话缓存会维护对象副本。 如果同一会话再次获取该对象,它将收到一个缓存的副本。 在一个特定的事务中,如果同一个对象被更新多次,那么它只在会话缓存中被更新。 提交事务后,只有对象的最终状态会保留在数据库中,从而避免重复的更新调用。
NCache 作为 NHibernate 二级缓存
NCache 提供 NHibernate 二级缓存提供程序。 这 NCache 提供程序配置为 NHibernate 二级缓存,无需更改任何代码。 使用 NCache 作为 NHibernate 的二级缓存使应用程序能够使用 NCache的分布式缓存功能。
NCache 通过二级缓存提供程序提供以下功能:
指定多个区域
可以在中指定和配置多个 NHibernate 区域 NCache 配置文件 NHibernate Cache。这些区域使用区域名称进行标识,并且可以配置多个 NCache 功能。
每个区域都可以配置 NCache 缓存功能。
NCache 区域缓存
NCache 允许指定 NCache 分别为每个区域缓存实例。 每个区域单独配置 NCache 缓存实例,或者如果需要,一个缓存实例用于多个位置。
缓存项优先级:每个区域的数据被配置为具有优先级 NHibernate cache。然后,该优先级用于数据逐出策略。
绝对到期:每个区域的数据被配置为具有优先级 NHibernate cache。然后,该优先级用于数据逐出策略。 NCache的可配置绝对过期功能通过在配置的时间间隔后使旧数据过期来保持缓存中的数据最新。
滑动到期:缓存区域还可以配置为缓存中的项目具有绝对过期时间。 使用滑动过期,自配置的时间间隔以来未使用的数据将被自动删除 NCache.
甚至在单个区域上配置多个区域 NCache 缓存实例
NCache NHibernate 的提供程序允许使用单个 NCache 多个实例 NHibernate cache 实例。 NCache 记录数据及其关联的 NHibernate 区域。
数据库依赖
为保证数据与数据库的一致性, NCache 为 NHibernate 应用程序提供可以在实体基础上配置的数据库依赖关系功能。 数据库依赖项将缓存数据与数据库同步,以便数据库记录中的任何更改都会使缓存中的相应实体失效。 因此,即使数据库更新来自 NHibernate 应用程序以外的应用程序,NHibernate 也会检索最新记录。
用于缓存大型查询结果的查询缓存功能
复杂而庞大的查询,如果重复执行而结果没有改变,会给数据库带来压力。 为避免多次执行此类查询, NCache 允许使用 NHibernate 的查询缓存功能来缓存此类查询。 因此,这样的查询及其结果是为一个 NHibernate 应用程序执行的,并且可供所有使用该数据库的 NHibernate 应用程序使用,而无需查询它。
无需更改代码
NCache 允许通过其配置文件使用所有功能,无需更改代码。
在本节中
运用 NCache 作为 NHibernate 二级缓存
解释如何配置和使用 NCache 作为NHibernate二级缓存。
使用 Nhibernate 进行查询缓存
解释如何缓存查询 NCache 使用 NHibernate。
与NHibernate二级缓存同步数据库
解释了如何在 NHibernate 中同步数据库 NCache.