加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 05:52:46 所属栏目:安全 来源:网络整理
导读:我的Membase服务器安装了几个桶设置,我正在寻找一个很好的教程或示例如何使用它作为第二级缓存与NHibernate. 我对什么样的配置感兴趣,如果有什么我需要做的代码,或者我可以处理这一切从我的NHibernate映射. 感谢任何协助. 解决方法 在映射文件中,您需要包含
我的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手动设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读