1.Maven工程加入依赖
没有在maven仓库中找到memcached的依赖,则下载了jar添加到本地仓库
mvn install:install-file -Dfile=java_memcached-release_2.6.6.jar -DgroupId=com.danga -DartifactId=memcached -Dversion=2.6.6 -Dpackaging=jar -DgeneratePom=true
然后:在pom中添加lib依赖:
<dependency>
<groupId>com.danga</groupId>
<artifactId>memcached</artifactId>
<version>2.6.6</version>
</dependency>
2.本地测试maven功能
public class CacheHelper { private static MemCachedClient mcc = new MemCachedClient(); private CacheHelper() { } static { String[] servers = { "127.0.0.1:11211" }; Integer[] weights = { 2 }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setWeights(weights); pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaxIdle(1000 * 60 * 60 * 6); pool.setMaintSleep(30); pool.setNagle(false);// 禁用nagle算法 pool.setSocketConnectTO(0); pool.setSocketTO(3000);// 3秒超时 pool.setHashingAlg(3);//设置为一致性hash算法 pool.initialize(); } public static MemCachedClient getMemCachedClient(){ return mcc; } }经测试memcache可以保存基本类型,对象(序列化),集合
3.maven整合Spring
<!--memcached 客户端 SocketPool--> <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown"> <constructor-arg><value>neeaMemcachedPool</value></constructor-arg> <property name="servers"> <list> <value>127.0.0.1:11211</value> </list> </property> <property name="weights"> <list> <value>2</value> </list> </property> <property name="initConn"> <value>5</value> </property> <property name="minConn"> <value>5</value> </property> <property name="maxConn"> <value>250</value> </property> <property name="maintSleep"> <value>30</value> </property> <property name="nagle"> <value>false</value> </property> <property name="maxIdle"> <value>6000</value> </property> <property name="socketTO"> <value>3000</value> </property> </bean> <!--memcached client--> <bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient"> <constructor-arg> <value>neeaMemcachedPool</value> </constructor-arg> </bean>直接注入MemCachedClient即可
注:1个服务器可以启动多个MemCached的根据端口不同
MemCached服务会根据设置的算法,将内容存储到各个MemCached服务中