`

java中memcached作为hibernate的二级缓存

阅读更多
因项目的问题,需要用到服务器缓存技术,我们选择了分布式的memcached来作为hibernate的二级缓存,需要用的的jar包如下:

memcached-2.1.jar
hibernate-memcached-1.2.2.jar
spy-2.4.jar

另外还需要下载memcached服务器

我是集成了spring的,所以首先在spring中加入如下配置

                <!-- 开启二级缓存 -->
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <!-- 结构化方式存储 -->
                <prop key="hibernate.cache.use_structured_entries">true</prop>
                <!-- 查询缓存 -->
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <!-- 二级缓存服务类 -->
                <prop key="hibernate.cache.provider_class">
                    com.googlecode.hibernate.memcached.MemcachedCacheProvider
                </prop>
                <!-- 二级缓存服务地址和端口 -->
                <prop key="hibernate.memcached.servers">localhost:11211 127.0.0.1:11211</prop>
                <!--缓存时间-->
                <prop key="hibernate.memcached.operationTimeout">60000</prop>

这样我们就配置了memcached来作为hibernate的二级缓存,当然我们的配置还没有完成,仅仅这样配置缓存是不会工作

接下来我们需要在需要缓存的实体对象的映射文件中加入缓存标签,即在.hbm.xml中加入<cache usage="read-write"/>记住,此配置只能配置在class里面,且需要配置在id之前,当然usage的策略还有几种,我就不一一介绍了

当然如果你使用的是jpa就需要在实体上加上@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)   的注解

如果你使用的是query的查询方式的话,你还需要做这样的设置query.setCacheable(true);

然后运行memcached   然后启动项目,如果看到一下信息,那么证明你配置成功了

2012-07-27 10:10:01.988 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=localhost/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2012-07-27 10:10:01.988 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2012-07-27 10:10:01.988 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@1a9447c
2012-07-27 10:10:01.988 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@1dba6e2
12
15
分享到:
评论
2 楼 developerinit 2013-03-03  
什么苦头?
1 楼 dynamiclu 2012-07-28  
兄弟,以后会有苦头吃!

相关推荐

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

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

    Hibernate4二级缓存实例(源码)

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

    memcached整合hibernate资源合集

    2. **配置Hibernate缓存**:在Hibernate的配置文件中,你需要指定使用Memcached作为二级缓存提供者。这可能涉及修改`hibernate.cache.region.factory_class`属性,设置为对应的Memcached缓存区域工厂类。 3. **集成...

    hibernate-memcached包

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

    配置memecached作hibernate4的二级缓存

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

    hibernate配置二三级缓存

    下面将详细探讨如何在Hibernate中配置二级缓存,并简要介绍所谓的“三级缓存”。 #### 一、二级缓存配置 **1. 引入依赖库** 首先,需要确保项目中已经引入了相应的缓存实现库,如EhCache。在Maven项目的`pom.xml`...

    memcache也spring,hibernate的配置

    - 在Hibernate配置中指定使用hibernate-memcached作为二级缓存。 - 如果单独使用Spring,需要配置Spring的缓存管理器,并关联xmemcache-spring的相关配置。 - 在需要缓存的方法上使用Spring的缓存注解。 8. **...

    hibernate-memcached-1.1.0-sources.zip

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

    Java环境下Memcached应用详解.docx

    2. **Hibernate Provider**:如果使用Hibernate作为ORM框架,可以自定义Hibernate缓存提供者,将Memcached作为二级缓存。这样,Hibernate查询的结果会被缓存起来,提高数据库访问效率。 3. **Session复制**:利用...

    hibernate 缓存

    本篇将深入探讨Hibernate的缓存机制,包括一级缓存和二级缓存,并涉及二级缓存的高级应用——分布式缓存和查询缓存。 ### 1. Hibernate缓存概述 **缓存的作用**:减少对数据库的访问次数,从而提高应用性能。...

    Hibernate缓存深入详解.ppt

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

    hibernate整合memcached需要的jar包

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

    java之数据库缓存

    总结来说,Java中的数据库缓存是通过各种工具和框架实现的,如Redis、Memcached、Hibernate二级缓存等。理解它们的工作原理、源码细节以及如何有效利用工具进行管理和监控,是提升系统性能、降低数据库压力的关键。...

    Hibernate缓存

    5. hibernate二级缓存攻略.docx:这份文档可能提供了一份详细的指南,指导开发者如何有效地配置和利用Hibernate的二级缓存来提升应用性能。 6. hibernate缓存策略.pdf:这可能包含对Hibernate缓存的各种策略(如读写...

    JAVA+MYSQL+Memcached

    在IT领域,尤其是在Web开发中,Java、MySQL和Memcached是三个非常重要的技术组件。本文将深入探讨这些技术,以及如何将它们结合使用。 首先,Java是一种广泛使用的面向对象的编程语言,尤其在企业级应用中占据主导...

    hibernate-memcached-1.1.0-javadoc.zip

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

    memcached在SSH中的配置

    4. **Hibernate二级缓存集成**: - 如果项目使用Hibernate,可以集成Ehcache或第三方memcached实现(如hibernate-ehcache-memcached),配置hibernate.cfg.xml或使用XML/Annotation方式定义缓存策略。 5. **使用...

    Hibernate性能(缓存 延迟加载 事务 悲观 乐观锁).ppt

    【Hibernate性能优化】:在Java开发中,Hibernate作为流行的ORM框架,其性能优化至关重要。缓存、延迟加载、事务管理和锁定策略是提升Hibernate性能的四大关键要素。 **1. Hibernate缓存** 缓存机制是提高ORM框架...

    Hibernate(C#/JAVA)教程

    6. 批量操作和缓存:讲解如何进行批量数据处理,以及利用二级缓存提高性能。 **NHibernate 3.0 Cookbook-cut.pdf** 这本书可能是一本关于 NHibernate 实践技巧的集合,"cut" 版可能意味着它是部分内容的精简版。书...

Global site tag (gtag.js) - Google Analytics