0 0

hibernate memcached 二级缓存无效 0

我用memcached配置的二级缓存
Spring-hibernate配置:
 <property name="hibernateProperties">
            <props>
            	<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
                <prop key="hibernate.cache.region_prefix">${hibernate.cache.region_prefix}</prop>
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
                <prop key="hibernate.cache.use_structured_entries">${hibernate.cache.use_structured_entries}</prop>
                <prop key="hibernate.memcached.servers">${hibernate.memcached.servers}</prop>
                <prop key="hibernate.memcached.memcacheClientFactory">${hibernate.memcached.memcacheClientFactory}</prop>
            </props>
        </property>



系统启动提示 Starting MemcachedClient...

要缓存的类映射文件里加了
<cache usage="read-write"/>
而且我debug发现对象已经加载到memcached中了
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:304
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:303
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:302
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:301
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:299
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:413
quality.cache.memcache.com.akazam.directview.develop.model.Application:0:121
.............

但是我在测试调用的时候,仍然是去数据库查询的,而不是直接从缓存中读取
郁闷了,不知道是怎么回事
测试代码:
        List<Application> applications = null;
        //getApi().getDao()返回一个HibernateGenericDao
    	applications = (List<Application>)getApi().getDao().loadAll(Application.class);
        applications = (List<Application>)getApi().getDao().getList(" from Application ", new Object[]{});
        applications = (List<Application>) getApi().getDao().loadAsHql(" from Application ");
        applications = (List<Application>) getApi().getDao().loadAsHql(" from Application ");

控制台输出了四条mysql查询语句,根本没有调用缓存
求大神帮忙看看哪出问题了!
2014年5月22日 18:05

1个答案 按时间排序 按投票排序

0 0

采纳的答案

 你查询的结果有没有放置到缓存里面去
query.setCacheable(true)

2014年5月22日 18:14

相关推荐

    项目中使用 hibernate-memcached 做二级缓存

    本文将详述如何在项目中使用Hibernate与Memcached结合实现二级缓存,并探讨Memcached的基本原理和使用方法。 首先,我们需要理解什么是Hibernate的二级缓存。在Hibernate框架中,一级缓存是每个Session级别的,它...

    Hibernate4二级缓存实例(源码)

    3. **Hibernate与memcached集成**:将memcached作为Hibernate二级缓存的提供者,需要配置相应的插件或库,如hibernate-ehcache或hibernate-memcached。集成过程通常包括配置Hibernate的配置文件(hibernate.cfg.xml...

    memcached作为hibernate二级缓存必备的jar包

    标题提到的"memcached作为hibernate二级缓存必备的jar包",指的是将分布式内存缓存系统Memcached集成到Hibernate框架中,用作二级缓存。这样做的主要目的是进一步优化数据读取,降低数据库压力。以下是描述中列出的...

    hibernate4.0使用二级缓存jar包

    ehcache 二级缓存 配置使用的jar包 配置如下: &lt;!-- 启用二级缓存 --&gt; &lt;property name="hibernate.cache.use_second_level_cache"&gt;true &lt;!-- 查询的二级缓存配置 --&gt; &lt;property name="hibernate....

    hibernate-memcached, 在Hibernate中,使用Memcached作为第二级分布式缓存的库.zip

    hibernate-memcached, 在Hibernate中,使用Memcached作为第二级分布式缓存的库 休眠 memcachedHibernate中使用Memcached作为第二级分布式缓存的库。基于优秀的spymemcached客户端包含对 Whalin ( danga ) memcached...

    hibernate-memcached包

    **hibernate-memcached包** 是一个专为Hibernate框架设计的扩展,目的是将流行的分布式内存缓存系统Memcached整合到Hibernate中,作为其二级缓存解决方案。在大型分布式应用中,缓存技术是提高性能的关键,特别是...

    hibernate配置二三级缓存

    ### Hibernate配置二级与三级缓存详解 在Java开发领域中,Hibernate作为一种流行的ORM(对象关系映射)框架,被广泛应用于数据库操作。为了提高应用程序的性能,Hibernate支持多种级别的缓存机制,其中最为常见的是...

    最新二级缓存memcached,支持hibernate4

    解决目前memcached不支持hibernate4的缺陷,hibernate配置&lt;property name="hibernate.cache.region.factory_class"&gt;com.googlecode.hibernate.memcached.MemcachedRegionFactory&lt;/property&gt;

    hibernate-memcached-1.1.0-sources.zip

    `hibernate-memcached-1.1.0-sources.zip`提供的源码实现了一个Hibernate二级缓存提供者,它将Hibernate的查询结果缓存在Memcached中,当再次进行相同查询时,可以直接从缓存中获取数据,避免了重复的数据库查询。...

    配置memecached作hibernate4的二级缓存

    本篇将详细讲解如何配置Memcached作为Hibernate 4的二级缓存,以及相关的知识点。 首先,我们需要了解什么是Memcached。Memcached是一款高性能、分布式内存对象缓存系统,它用于存储中间结果或临时数据,以减少对...

    PHP MemCached 高级缓存应用代码

    Memcached是一种高性能、分布式内存对象缓存系统,它通过减轻数据库负担来加速动态Web应用程序的速度,提高可扩展性。其工作原理是将数据存储在内存中,提供快速的数据访问速度,尤其是在高并发场景下,能够显著提升...

    PHP100视频教程74:PHP.MemCached.高级缓存应用.rar

    Memcached是一款开源、轻量级的分布式内存对象缓存系统,用于存储临时的数据,以减少对数据库的访问。它通过在内存中缓存数据和对象来减少数据库负载,提高Web应用的响应速度。Memcached支持多种编程语言,包括PHP,...

    hibernate整合memcached需要的jar包

    这个库包含了一些核心接口和实现,如`MemcachedCacheProvider`,它是Hibernate缓存提供者的一种实现,用于将传统的第二级缓存替换为Memcached。 2. **memcached-2.3.1.jar**:这是Memcached的Java客户端库,负责与...

    hibernate-memcached-1.5.jar

    这个包是最高版本了,google code是1.22,但是这个版本是基础班的1.5版本.是github上源代码经过我打包出来的jar

    hibernate-memcached-1.1.0-javadoc.zip

    Hibernate Memcached是将Memcached作为二级缓存机制引入到Hibernate中的一个插件,它允许开发者将频繁访问的数据存储在内存缓存中,以提高应用的响应速度。Hibernate Memcached 1.1.0版提供了完整的API文档和...

    memcached整合进hibernate4的资源包

    hibernate使用memcached作为二级缓存所需要的资源包,包括memcached的windows安装文件、hibernate3和hibernate4整合memcached的jar包 文件目录:commons-codec-1.10.jar、hibernate3-memcached-1.5.jar、hibernate4-...

    hibernate-memcached

    hibernate-memcached,一个分布式缓存框架,很强大,这里提供hibernate集成jar

    Hibernate缓存深入详解.ppt

    在分布式环境下,二级缓存可以通过配置实现分布式缓存,如使用Redis、Memcached等。这种方式可以在多台服务器之间共享数据,提高系统的可扩展性和性能。同时,需要处理好分布式环境下的数据一致性问题,如采用事件...

    Memcached内存对象缓存

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...

Global site tag (gtag.js) - Google Analytics