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 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键