mybatis整合memcache

jopen 10年前

mybatis官方出了对memcache的整合,使mybatis也可以使用分布式缓存,除了memcache外还有个Hazelcast的整合包。

We have just released the 1st GA version of the MyBatis Memcached adapter.

The beta has bee around for almost one year and only one issue was reported.

这个memcache的整合是官方发布的版本,在网上找了找都没看到相关介绍,我这次也当次搬运工

pom文件引用

<dependency>      <groupId>org.mybatis.caches</groupId>      <artifactId>mybatis-memcached</artifactId>      <version>1.0.0</version>    </dependency>

也可以上github上下载https://github.com/mybatis/memcached-cache/releases

http://mybatis.github.io/memcached-cache/ 这个是说明

在mapper中配置

<mapper namespace="org.acme.FooMapper">    <cache type="org.mybatis.caches.memcached.MemcachedCache" />    ...  </mapper>

memcache的配置是根据classpath下的 /memcached.properties 配置的,如果没有使用默认

Property Default Description
org.mybatis.caches.memcached.keyprefix _mybatis_ 缓存key的前缀
org.mybatis.caches.memcached.servers localhost:11211 memcache配置${host}:${port}
org.mybatis.caches.memcached.connectionfactory net.spy.memcached.DefaultConnectionFactory 只要是实现接口net.spy.memcached.ConnectionFactory
org.mybatis.caches.memcached.expiration 过期时间
单位是秒
org.mybatis.caches.memcached.asyncget false 是否启用异步读
org.mybatis.caches.memcached.timeout 5 使用异步读的timeout时间
org.mybatis.caches.memcached.timeoutunit java.util.concurrent.TimeUnit.SECONDS timeout单位
org.mybatis.caches.memcached.compression false 如果开启,对象在放到memcache前会使用GZIP 压缩



If users need to log cache operations, they can plug the Cache logging version:

<mapper namespace="org.acme.FooMapper">    <cache type="org.mybatis.caches.memcached.LoggingMemcachedCache" />    ...  </mapper>

还没看代码是怎么实现的,是不是可以实现那种hibernate的二级缓存功能