官方网址: 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,现在配置已经完成。
分享到:
相关推荐
memcache的客户端,用maven构建,里有用hibernate-memcached与hibernate,spring3.0进行配置,也有与spring3.0单独配置。
memcached-2.5-sources.jar、hibernate-memcached-1.2.2-sources.jar、spy-2.4.jar这三个jar不太好找,剩下两个commons-codec和slf4j-log4j直接maven配置一下就行 <groupId>org.slf4j <artifactId>slf4j-log4j12 ...
解决目前memcached不支持hibernate4的缺陷,hibernate配置<property name="hibernate.cache.region.factory_class">com.googlecode.hibernate.memcached.MemcachedRegionFactory</property>
ehcache 二级缓存 配置使用的jar包 配置如下: <!-- 启用二级缓存 --> <property name="hibernate.cache.use_second_level_cache">true <!-- 查询的二级缓存配置 --> <property name="hibernate....
Hibernate4集成memcache用jar合集 hibernate配置 <property name="hibernate.cache.region.factory_class">com.googlecode.hibernate.memcached.MemcachedRegionFactory</property>
IOIF以EXTJS为前端,以Spring、Struts、Hibernate为后端,整合了Proxool、Log4j、Quartz、Oscache、Castor、Memcached、redis等优秀的开源软件。 支持Tomcat6及Resin3等应用服务器,支持Oracle、MYSQL等数据库。IOIF...
IOIF以EXTJS为前端,以Spring、Struts、Hibernate为后端,整合了Proxool、Log4j、Quartz、Oscache、Castor、Memcached、redis等优秀的开源软件。 支持Tomcat6及Resin3等应用服务器,支持Oracle、MYSQL等数据库。IOIF...
4)、ORM使用JPA,默认实现是Hibernate。 5)、内置搜索(OSEM)使用Compass。 6)、认证授权使用SpringSecurity。 7)、代码生成使用Freemarker。 8)、日志组件使用SLF4J和Logback。 9)、调度组件使用Quartz。 10...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...
可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...