zhangw_2005 2017-09-08 13:41 采纳率: 0%
浏览 579

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
这里的设置没生效。

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 10:35
    关注

    参考GPT和自己的思路:

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

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

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?