c# – NHibernate和Memcached – 教程/示例

前端之家收集整理的这篇文章主要介绍了c# – NHibernate和Memcached – 教程/示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Membase服务器安装了几个桶设置,我正在寻找一个很好的教程或示例如何使用它作为第二级缓存与NHibernate.

我对什么样的配置感兴趣,如果有什么我需要做的代码,或者我可以处理这一切从我的NHibernate映射.

感谢任何协助.

解决方法

在映射文件中,您需要包含属性
<class name="ClassName" table="Table">
   <cache usage="read-write" />
   <!-- SNIP -->
</class>

选项是读写(读取提交隔离),非限制读写(很少写入的对象,更好的性能,但是增加的陈旧数据的机会)或只读(永远不会更改的数据).

然后,在您的网络(或应用)配置中,您需要一个部分来配置memcached:

<configuration>
  <configSections>
    <!-- SNIP -->
    <section name="memcache" type="NHibernate.Caches.MemCache.MemCacheSectionHandler,NHibernate.Caches.MemCache" />
  </configSections>
  <memcache>
    <memcached host="127.0.0.1" port="11211" weight="2" />
  </memcache>
  <!-- SNIP -->
</configuration>

最后,在你的会话工厂配置一定要使用:

<hibernate-configuration>
    <session-factory>
      <!-- SNIP -->

      <property name="expiration">300</property> <!--memcache uses seconds -->
      <property name="cache.provider_class">NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache</property>
      <property name="cache.use_second_level_cache">true</property>
      <property name="cache.use_query_cache">false</property> <!-- true if you want to cache query results -->
    </session-factory>
  </hibernate-configuration>

当然,您将需要从相应版本的NHibernate.Caches下载并引用一个dll来获取正确的缓存提供程序. memcached还依赖于ICSharpCode.SharpZipLib和Memcached.ClientLibrary(下载中包含s / b)

如果您使用流畅的NHibernate,则可以使用会话工厂的安装链中的.Cache方法,尽管某些属性需要通过调用.ExposeConfiguration手动设置.

猜你在找的Memcache相关文章