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 本身的配置参数,比如增加缓存大小、调整最小和最大对象大小等。这些参数的调整也会影响存储时间、缓存命中率等缓存特性。

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧