memcached java 2.61 hibernate_[转]hibernate-memcached补丁:支持Whalin的MemCached Java客户端...

夏弘文
2023-12-01

hibernate-memcached(http://code.google.com/p/hibernate-memcached/ )是允许hibernate使用MemCached作为二级缓存的项目,它用到了spymemcached(http://code.google.com/p/spymemcached/ )这个MemCached的Java客户端。花了一点时间做了个补丁,让它也支持Whalin的Java客户端(http://whalin.com/memcached/ )。

所有的代码(包括原hibernate-memcached的所有源码)、javadoc及重新制作的发布包请见附件,限于篇幅就不具体说明了。以下是我更新过的hibernate-memcached的配置说明,原配置说明请参见http://code.google.com/p/hibernate-memcached/wiki/Configuration

hibernate-memcached(http://code.google.com/p/hibernate-memcached/ )是允许hibernate使用MemCached作为二级缓存的项目,它用到了spymemcached(http://code.google.com/p/spymemcached/ )这个MemCached的Java客户端。花了一点时间做了个补丁,让它也支持Whalin的Java客户端(http://whalin.com/memcached/ )。

所有的代码(包括原hibernate-memcached的所有源码)、javadoc及重新制作的发布包请见附件,限于篇幅就不具体说明了。以下是我更新过的hibernate-memcached的配置说明,原配置说明请参见http://code.google.com/p/hibernate-memcached/wiki/Configuration

If you are using Maven2 for your application build you can follow the instructions on theMavenRepository page. For those that aren't using Maven2 you'll need to collect a few simple jars for yourself. I am going to assume you already have hibenrnate3 setup before you came here.

You'll need...

hibernate-memcached-.jar

An slf4j implementation for your preferred logging framework. For log4j you can use slf4j-log4j12-1.5.0.jar .

If you are using spymemcached as the MemCached client, you also need

or if you prefer Whalin's memcached client for java , you need to download java_memcached-release_2.0.1.jar from the download page according to your Java VM version.

hibernate.cache.provider_class

com.googlecode.hibernate.memcached.MemcachedCacheProvider

hibernate.cache.use_query_cache

true

Property

Default

Description

hibernate.memcached.servers

localhost:11211

Space delimited list of memcached instances in host:port format

hibernate.memcached.cacheTimeSeconds

300

The default number of seconds items should be cached. Can be overriden at the regon level.

hibernate.memcached.keyStrategy

HashCodeKeyStrategy

Sets the strategy class to to use for generating cache keys. Must provide a class name that implements KeyStrategy

hibernate.memcached.clearSupported

false

Enables support for the MemcachedCache.clear() method for all cache regions. The way clear is implemented for memcached is expensive and adds overhead to all get/set operations. It is not recommended for production use.

hibernate.memcached.readBufferSize

DefaultConnectionFactory.DEFAULT_READ_BUFFER_SIZE

The read buffer size for each server connection from this factory

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

Default operation timeout in milliseconds

hibernate.memcached.hashAlgorithm

HashAlgorithm.KETAMA_HASH

Which hash algorithm to use when adding items to the cache. Note: the MemcachedClient defaults to using HashAlgorithm.NATIVE_HASH, while the hibernate-memcached cache defaults to KETAMA_HASH for "consistent hashing"

hibernate.memcached.weights

Space delimited list of server weights. If not set, all servers get the same weight

hibernate.memcached.errorHandler

com.googlecode.hibernate.memcached.

dangamemcached.SimpleErrorHandler

Error handler used by Whalin's client internally

hibernate.memcached.poolName

default

The name of SockIOPool

hibernate.memcached.initConn

1

Initial pool size

hibernate.memcached.minConn

1

Min pool size

hibernate.memcached.maxConn

10

Max pool size

hibernate.memcached.maxIdle

3000000

Max idle time for available sockets. Default 5 minutes

hibernate.memcached.socketTimeout

30000

Default timeout of socket reads. Default 30 seconds

hibernate.memcached.socketConnectTimeout

3000

Default timeout of socket connections. Default 3 seconds

hibernate.memcached.maintSleep

30000

Maintenance thread sleep time. Default 30 seconds

hibernate.memcached.compressEnable

true

If compression enabled

hibernate.memcached.defaultEncoding

UTF-8

Default encoding

Property

Default

Description

hibernate.memcached.[region-name].cacheTimeSeconds

none, see hibernate.memcached.cacheTimeSeconds

Set the cache time for this cache region, overriding the cache-wide setting.

hibernate.memcached.[region-name].keyStrategy

none, see hibernate.memcached.keyStrategy

Overrides the strategy class to to use for generating cache keys in this cache region. Must provide a class name that implements KeyStrategy

hibernate.memcached.[region-name].clearSupported

none, see hibernate.memcached.clearSupported

Enables clear() operations for this cache region only. Again, the clear operation incurs cost on every get/set operation.

-----------------------------------

1 楼 movingboy 2008-10-09   引用

还是要说明一下:

附件里的代码中,包com.googlecode.hibernate.memcached.dangamemcached中的代码是我加的,其它的是原项目中的代码。我已经发邮件给Ray Krueger,把我的代码捐赠给了这个项目,因为Ray还收到了另一份捐赠的Whalin补丁,现在还不知道他到底会采用谁的代码。不管怎样,希望这个项目越来越好

上面的配置中忘了提到一点:使用Whalin的客户端时,还必须把hibernate.memcached.memcacheClientFactory设为com.googlecode.hibernate.memcached.whalin.DangaMemcacheClientFactory

 类似资料: