`
liuye
  • 浏览: 53970 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate-memcached--在Hibernate中使用Memcached作为一个二级分

    博客分类:
  • java
阅读更多

今天在网上看到一个用Memcached作为Hibernate二级分布式缓存,感觉挺有兴趣,就是尝试用了,感觉还不错,就推荐给大家看一下。

官方网址: http://code.google.com/p/hibernate-memcached/
目前最新版本为1.0, 支持Hibernate3.3.

下面是具体的使用方法:
hibernate-memcached需要支持的类库如下:


配置方法如下:

配置Hibernate使用cache提供类

hibernate.cache.provider_class com.googlecode.hibernate.memcached.MemcachedCacheProvider

 

设置查询缓存开启

hibernate.cache.use_query_cache true


其它一些参数设置说明:

Property Default Description
hibernate.memcached.servers localhost:11211 memcached 服务地址,多个用空格分隔
格式host:port
hibernate.memcached.cacheTimeSeconds 300 缓存失效时间,单位秒
hibernate.memcached.keyStrategy HashCodeKeyStrategy 缓存Key生成存储HashCode算法
hibernate.memcached.readBufferSize DefaultConnectionFactory.DEFAULT_READ_BUFFER_SIZE 从服务器读取数据缓存区大小
hibernate.memcached.operationQueueLength DefaultConnectionFactory.DEFAULT_OP_QUEUE_LEN Maximum length of the operation queue returned by this connection factory
hibernate.memcached.operationTimeout DefaultConnectionFactory.DEFAULT_OPERATION_TIMEOUT 操作超时时间设置
hibernate.memcached.hashAlgorithm HashAlgorithm.KETAMA_HASH 新增缓存数据到服务器时使用的Hash散列算法。 当 hibernate-memcached 设置成 KETAMA_HASH算法时,注意:默认客户端API使用的是 HashAlgorithm.NATIVE_HASH
hibernate.memcached.clearSupported false 支持MemcachedCache.clear()方法清空缓存。
建议不要开启。


配置示例(本文以Hibernate3.3-entitymanager为例)
配置 persistence.xml文件

<!----><? xml version="1.0" encoding="UTF-8" ?>
< persistence  xmlns ="http://java.sun.com/xml/ns/persistence" " target ="_new" > http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

< persistence-unit  name ="entityManager"  transaction-type ="RESOURCE_LOCAL" >
< provider > org.hibernate.ejb.HibernatePersistence </ provider >
< jta-data-source > java:comp/env/jdbc/qualitydb </ jta-data-source >

< properties >
< property  name ="hibernate.dialect"  value ="org.hibernate.dialect.PostgreSQLDialect"   />
< property  name ="hibernate.max_fetch_depth"  value ="3"   />
< property  name ="hibernate.show_sql"  value ="true"   />


< property  name ="hibernate.cache.region_prefix"  value ="quality.cache.ehcache" />
< property  name ="hibernate.cache.use_second_level_cache"  value ="true" />
< property  name ="hibernate.cache.use_structured_entries"  value ="true" />
< property  name ="hibernate.cache.use_query_cache"  value ="true" />
< property  name ="hibernate.cache.provider_class"  value ="com.googlecode.hibernate.memcached.MemcachedCacheProvider" />
< property  name ="hibernate.memcached.servers"  value ="localhost:11211" />

</ properties >

</ persistence-unit >

</ persistence >



启动后,提示如下:
2008-08-28 17:10:08,312 JCLLoggerAdapter.java265 INFO -- Starting MemcachedClient...
2008-08-28 17:10:08.718 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
2008-08-28 17:10:08.750 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@16e59da

表示我们第一步配置已经成功了,接下来,对需要进行缓存的Entity进行配置

<!----> 1  @Entity
 2  @Cache(usage  =  CacheConcurrencyStrategy.READ_WRITE) // 设置要求缓存
 3  public   class  Student {
 4  
 5    @Id
 6    @Column(length = 32 )
 7       private  String id;
 8      
 9      @Column(length = 20 )
10       private  string name;
11      
12      @OneToMany
13      @Cache(usage  =  CacheConcurrencyStrategy.READ_WRITE)
14       private  Set < Book >  books;
15  
16  }



Ok,现在配置已经完成。

分享到:
评论

相关推荐

    hibernate-memcached包

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

    hibernate-memcached-1.1.0-sources.zip

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

    hibernate-memcached-1.5.jar

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

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

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

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

    2. **配置Hibernate**:在Hibernate的配置文件(如hibernate.cfg.xml)中,启用二级缓存并指定使用Hibernate-Memcached作为缓存提供者。 3. **配置Memcached服务器**:设置连接到Memcached服务器的参数,包括主机...

    hibernate-memcached-1.1.0.jar

    hibernate-memcached-1.1.0.jar

    hibernate-memcached

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

    hibernate集成memcached所需jar

    memcached-2.5-sources.jar、hibernate-memcached-1.2.2-sources.jar、spy-2.4.jar这三个jar不太好找,剩下两个commons-codec和slf4j-log4j直接maven配置一下就行 &lt;groupId&gt;org.slf4j &lt;artifactId&gt;slf4j-log4j12 ...

    hibernate-memcached-1.1.0-javadoc.zip

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

    memcached-hibernate-1.3

    google上的这个包最多是1.2.2但是github上是1.3,源代码下载下来后,我打包为jar的

    hibernate整合memcached需要的jar包

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。而Memcached则是一种分布式内存缓存系统,常用于提高Web应用程序的性能,通过缓存数据库查询结果来...

    memcached整合进hibernate4的资源包

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

    hibernate4+spring4+memcached 工程

    综合以上,这个项目提供了一个实用的示例,展示了如何在Spring 4环境中整合Hibernate 4和Memcached,以实现高性能的数据访问和缓存策略。对于想要学习或实践这些技术的人来说,这是一个极好的起点。通过深入研究和...

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

    1. **hibernate-memcached-1.2.2.jar**:这是Hibernate与Memcached之间的一个适配器,它提供了将Hibernate的二级缓存策略与Memcached服务连接的功能。这个库包含了必要的API和实现,使得Hibernate能够识别并使用...

    memcache也spring,hibernate的配置

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

    memcached-2.1.jar

    1. 添加依赖:在Java项目中,需要将memcached-2.1.jar作为依赖引入,通常通过Maven或Gradle等构建工具进行管理。 2. 连接配置:配置Memcached服务器的IP地址和端口号,创建客户端连接。 3. 操作缓存:使用Java API...

    最新二级缓存memcached,支持hibernate4

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

    hibernate4.0使用二级缓存jar包

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

    Hibernate4二级缓存实例(源码)

    这个标题表明我们将探讨一个具体的应用示例,即如何在Hibernate4框架中实现实现二级缓存,并且提供了源码供参考。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。...

    memcached在SSH中的配置

    - 使用struts2的插件(如struts2-memcached-plugin),在struts.xml中配置。 - 在Action中添加注解或配置,指定使用缓存。 4. **Hibernate二级缓存集成**: - 如果项目使用Hibernate,可以集成Ehcache或第三方...

Global site tag (gtag.js) - Google Analytics