行情北京 上海 广州 深圳 沈阳 济南 郑州 武汉 长沙 南京 西安 成都 昆明 杭州
e杂志下载
 首页 | 资讯 网刊 视频 评测  企业:服务器 网络 存储 通信 安全 技术开发 信息化-方案 | ITPUB IXPUB
 商务笔记本 台式机 投影机 打印扫描 办公产品 耗材 软件 学院 下载 驱动  家庭数字家电 家庭组网
 个人DIY硬件 | 手机 GSM CDMA 无线电 GPS| 数码影像 相机 摄像机 | 消费数码 MP3 | 论坛 | 经销商社区
 报价中心 三维图秀 产品评论 产品大全 使用手册 术语详解 厂商专区 二手市场 维修服务 疑难解答 IT搜索
 

NHibernate文档-NHibernate缓存

作者:DDLLY命名空间 发表日期:2007-04-26 01:29
  内容导航: 上一页 1 下一页
 
[It168 技术文档]第8章 NHibernate缓存(NHibernate.Caches)

目录

如何使用?

什么是 NHibernate.Caches?

NHibernate.Caches 是 NHibernate 的附加软件,它是Kevin Williams (aka k-dub)贡献的.缓存是一个保存实体的地点(在首次加载时);一旦进入缓存,能够取得它们,而无需(再次)查询的后台的存储(数据库)。这意味着它们能更快的加载(或重新加载)。

NHibernate session有一个内部的(一级)缓存,存放着它的实体。这些缓存没有共享,因此session被销毁时它的缓存也被销毁了。NHibernate提供了二级缓存系统;他在SessionFactory级别工作。因此它被同一个SessionFactory产生的session共享。

使用每个请求(request)一个session模式,很多个Session可以并发的访问同一个实体,而不用每次都访问数据库,因此性能获得了提升。

贡献者使得在NHibernate中使用不同的缓存提供者成为可能:

  • NHibernate.Caches.Prevalence使得使用底层的 Bamboo.Prevalence实现作为缓存提供者成为可能。打开文件Bamboo.Prevalence.license.txt可以看到它的许可信息,你也可以访问它的站点

  • NHibernate.Caches.SysCache使得使用底层的System.Web.Caching.Cache实现作为缓存提供者成为可能。这意味着你可以依赖ASP.NET的缓存特性来理解它是怎么工作的。要得到更多的信息,可以阅读Caching Application Data(在NSDN上)。

 

如何使用?

这里是在NHibernate中启用二级缓存的步骤:

 

  • 选择需要使用的缓存提供者并且拷贝它的程序集到你的程序集路径(NHibernate.Caches.Prevalence.dll 或者NHibernate.Caches.SysCache.dll).

  • 为了表明使用哪种缓存提供者,在NHibernate配置文件中(可以在YourAssembly.exe.config或者web.config或者.cfg.xml 文件)添加下面的内容:

        
        
    <add key="hibernate.cache.provider_class" value="XXX" />(1) <add key="relativeExpiration" value="120" />(2)

     

    (1)

    "XXX" 可以是 "NHibernate.Caches.Prevalence.PrevalenceCacheProvider, NHibernate.Caches.Prevalence" 或者"NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache"。

    (2)

    relativeExpiration的值是你希望缓存每个实体的秒数(这里是两分钟)

     

  • 添加<cache usage="read-write|nonstrict-read-write|read-only"/>(在<class>后面)到你需要缓存的实体映射中.它也为集合(bag, list, map, set, ...)提供支持.

小心:缓存不会知道另一个进程存储的实体的变化(尽管配置了缓存数据的过期时间).当缓存被建立在SessionFactory级别,他们会和SessionFactory实例一起被销毁; 所以必须在你需要缓存的时候,保持SessionFactory存在.

上一页 1 下一页
【内容导航】  
【相关文章】  
下一篇:NHibernate文档-示例: Parent/Child
©版权所有。未经许可,不得转载。 【责任编辑:孙蓬阳
 
  网友评论