NHibernate.Caches.MemCache web.config用于缓存过期时间

时间:2008-12-09 22:06:52

标签: nhibernate web-config memcached

我正在迁移到Nhibernate 2.0 GA但在memcached提供程序中设置缓存过期时遇到一些麻烦。

我在NHibernate.Caches.MemCache源中看到有一个属性可以到期,默认值为300秒。

还有缓存区域的属性,但配置部分处理程序似乎没有映射它们。

是否设置了一些非特定于提供者的缓存过期时间 -

这是功能性网络配置部分(显然没有过期设置)。

<memcache>
    <memcached host="127.0.0.1" port="11211"/>
    <!-- or multiples -->
</memcache>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="show_sql">true</property>
        <property name="connection.provider" >NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
                <!--    <property name="hibernate.cache.provider_class" value="NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache" /> -->
        <property name="connection.connection_string">Data Source=stage2.ripple6.com;Initial Catalog=r6stage;User Id=sa;Password=mworld7650;Application Name=Hibernate;</property>
        <property name="connection.isolation">ReadCommitted</property>
        <property name="cache.use_second_level_cache">true</property>
        <property name="cache.provider_class">NHibernate.Caches.MemCache.MemCacheProvider,NHibernate.Caches.MemCache</property>
        <property name="default_schema" >r6stage.dbo</property>
    </session-factory>

</hibernate-configuration>

3 个答案:

答案 0 :(得分:1)

使用default_expiration。

<property name="default_expiration" >YOUR_INTERVAL_IN_SECONDS</property>

我在源代码中看到默认的到期值设置为300秒。但您可以通过在NHibernate配置文件中设置default_expiration属性来覆盖此值。

答案 1 :(得分:0)

据我所知,缓存到期时间是提供程序特定的,因为某些缓存提供程序不支持此操作。 此外,这意味着您没有这样的情况,其中值60表示在某些情况下为一小时,在另一些情况下表示一分钟。

答案 2 :(得分:-1)

使用到期。

<property name="expiration" >YOUR_INTERVAL_IN_SECONDS</property>

之后,当您使用日志记录运行app时,您可以看到:

NHibernate.Caches.MemCache.MemCacheClient: 20:57:55,762 DEBUG MemCacheClient:0 - using expiration of YOUR_INTERVAL_IN_SECONDS seconds