Nhibernate 之 二级缓存

NHibenrate 适用版本 : 2.1.2.4000 GA

(原文链接 http://ddbiz.com/?p=149)

NHibernate 二级缓存可以说是与session不相关的,是ISessionFactory级别的。也就是说,不论哪个Session装载的对象,都被缓存在ISessionFactory中。

 

1. 配置二级缓存

NHibernate的二级缓存需要几个必要条件:

1.1) hibernate.cfg.xml中明确定义,如:

#1    <property name='cache.provider_class'>NHibernate.Caches.MemCache.MemCacheProvider, NHibernate.Caches.MemCache</property>

#2    <property name='cache.use_second_level_cache'>true</property>

#1 指明使用的cache实现
#2 指明要在sessionfactory中启用二级缓存。
如何配置memcache二级缓存?
此处实现memcache做二级缓存是因为我的其他项目也用到了memcache,有专门的几个服务器做缓存服务,所以也算是资源最大化利用吧。
memcache二级缓存需要几个assembly:
ICSharpCode.SharpZipLib.dll
Memcached.ClientLibrary.dll
NHibernate.Caches.MemCache.dll
这几个assembly都必须复制到应用的执行空间(或者加入到GAC)
除了上述1)的provider_class之外,在应用的配置文件中(app/web.config),还需要定义memcache的几个配置项:
以下为 web.config 配置:
<configSections>
    <section name="memcache" type="NHibernate.Caches.MemCache.MemCacheSectionHandler, NHibernate.Caches.MemCache" />
    ... ...
</configSections>
<memcache>
    <memcached host="127.0.0.1" port="11211" />
</memcache>

1.2) 在对象定义中指明使用cache

如 TUser.hbm.xml中:
<cache usage="read-write" />
2 使用二级缓存
经过1.2声明的对象,在 Get, Load, Create之后,都会被存入二级缓存。具体应用后面慢慢加入。(待续)

(原文链接 http://ddbiz.com/?p=149)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值