1、 Memcache和Mybatis整合jar 下载: mybatis-memcached-1.0.0.jar

      maven项目添加: 

<!-- mybatis整合memcache -->
        <dependency>
            <groupId>org.mybatis.caches</groupId>
                <artifactId>mybatis-memcached</artifactId>
            <version>1.0.0</version>
        </dependency>

2、Mapper文件添加如下语句:

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper        PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"  
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.xxx.dao.xxx" >
<cache type="org.mybatis.caches.memcached.LoggingMemcachedCache" />
  <resultMap id="xxx" type="com.xxx.xxx.xxx" >
    <id column="ID" property="id" jdbcType="BIGINT" />
  </resultMap>
复制代码

配置方式分为有日志和无日志两种:

无日志
<cache type="org.mybatis.caches.memcached.MemcachedCache" />

有日志
<cache type="org.mybatis.caches.memcached.LoggingMemcachedCache" />

3、classpath下新建memcached.properties文件,格式如下:

#any string identifier

org.mybatis.caches.memcached.keyprefix=_biz-cache-wk_

#space separated list of ${host}:${port}

org.mybatis.caches.memcached.servers=192.168.0.200:12000

#org.mybatis.caches.memcached.servers=192.168.0.44:12000

#Any class that implementsnet.spy.memcached.ConnectionFactory

org.mybatis.caches.memcached.connectionfactory=net.spy.memcached.DefaultConnectionFactory

#the number of seconds in 30 days    the expiration time (in seconds)

org.mybatis.caches.memcached.expiration=6000

#flag to enable/disable the async get

org.mybatis.caches.memcached.asyncget=false

#the timeout when using async get

org.mybatis.caches.memcached.timeout=5

#the timeout unit when using async get

org.mybatis.caches.memcached.timeoutunit=java.util.concurrent.TimeUnit.SECONDS

#if true, objects will be GZIP compressed before putting them to

org.mybatis.caches.memcached.compression=false

 

#\u7f13\u5b58\u670d\u52a1\u5668\u5b95\u673a\u540e\u591a\u4e45\u4e0d\u4f7f\u7528memcached \u6beb\u79d2\u4e3a\u5355\u4f4d

#refuse time when connection refused

org.mybatis.caches.memcached.refuseperiod=1000

配置参数说明:

Property  Default  Description
 org.mybatis.caches.memcached.keyprefix  _mybatis_  缓存key的前缀
 org.mybatis.caches.memcached.servers  localhost:11211  memcache地址
 org.mybatis.caches.memcached.connectionfactory  net.spy.memcached.DefaultConnectionFactory  只要实现接口net.spy.memcached.ConnectionFactory
 org.mybatis.caches.memcached.expiration  2592000(30天的秒数)  过期时间单位秒
 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 压缩