hibernate memcached默认缓存只有300秒,5分钟,怎么设置?

spring配置文件:
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" lazy-init="false">



com.test.springmvcsh.*




org.hibernate.dialect.MySQLDialect
true

             <!-- *****************memcache start *********************************** -->
             <prop key="hibernate.cache.use_second_level_cache">true</prop>
             <prop key="hibernate.cache.region.factory_class">com.googlecode.hibernate.memcached.MemcachedRegionFactory</prop>  
             <prop key="hibernate.memcached.servers">127.0.0.1:11211</prop>  
             <prop key="hibernate.cache.region_prefix">memcached2</prop>
             <prop key="hibernate.memcached.operationTimeout">36000</prop>
             <prop key="hibernate.memcached.cacheTimeSeconds">36000</prop>
             <prop key="hibernate.cache.use_structured_entries">true</prop>
             <prop key="hibernate.cache.use_query_cache">true</prop>
        </props>
    </property>
</bean>

    经测试,memcached缓存数据只有5分钟,超过五分钟就又从数据库取数据,怎么设置memcached的缓存时间?

36000
这里的设置没生效。

参考GPT和自己的思路:

根据你提供的配置文件信息,可以看出你已经设置了以下参数来控制缓存时间:

<prop key="hibernate.memcached.operationTimeout">36000</prop>
<prop key="hibernate.memcached.cacheTimeSeconds">36000</prop>

其中,hibernate.memcached.cacheTimeSeconds 指定了缓存存活时间为 36000 秒,即10小时。但是你提到该设置没有生效,可能是因为其他缓存配置或程序逻辑的影响。

建议你先检查一下程序中是否存在其他对缓存时间影响的配置,比如 Redis 相关配置等。也可以检查一下程序的逻辑,是否在需要更新缓存的时候主动删除了缓存,导致缓存时间失效。

此外,如果排除以上问题,还可以尝试调整 memcached 本身的配置参数,比如增加缓存大小、调整最小和最大对象大小等。这些参数的调整也会影响存储时间、缓存命中率等缓存特性。