读书人

Maven项目顶用Memcached实现缓存配置

发布时间: 2012-12-21 12:03:49 作者: rapoo

Maven项目中用Memcached实现缓存配置

?

这是新的项目架构,得说,这次很大胆的用了Maven的多模块项目设计来重新做这个庞大的项目。

Maven项目顶用Memcached实现缓存配置?

?

下面记录Memcached在Maven中的配置。

首先介绍如何手动添加第三方类库到自己电脑的本地仓库,这折腾了我一个晚上,点击链接Maven中手动添加第三方类库到自己电脑的本地仓库.m2。

首先添加Memcached的Java客户端到项目依赖中,如下执行:

1. 将Memcached.jar放到E盘下面;

2. cmd到打开命令窗口以后开始安装,运行如下指令:

E:\User>mvn install:install-file -Dfile=e:/memcached.jar -DgroupId=com.danga -DartifactId=memcached -Dversion=2.5.3 -Dpackaging=jar -DgeneratePom=true
?

?

3. 这样它就会自动在本地仓库里面加入自定义的jar依赖。

接着在项目添加以下依赖:

<dependency>    <groupId>com.danga</groupId>    <artifactId>memcached</artifactId>    <version>2.5.3</version></dependency>
?

?

接着在项目中写Memcached的应用类,下面是根据官方demo修改的,仅供参考:

?

/** * @author jason61719 * @buildTime 2011.03.12 * @description 本类用于连接缓冲池Memcached */package base.util;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class CacheHelper {/* 单例模式 */protected static MemCachedClient mcc = new MemCachedClient();private CacheHelper() {}/* 配置服务器组 */static {/* 定义IP地址和端口 */String[] servers = { "127.0.0.1:11212" };/* 设置缓存大小 */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);/* 设置关于TCP连接 */pool.setNagle(false);// 禁用nagle算法pool.setSocketConnectTO(0);pool.setSocketTO(3000);// 3秒超时/* 初始化 */pool.initialize();/* 设置缓存压缩 */mcc.setCompressEnable(true);mcc.setCompressThreshold(64 * 1024);}public static boolean set(String arg0, Object arg1) {return mcc.set(arg0, arg1);}public static Object get(String arg0) {return mcc.get(arg0);}/* 测试 */public static void main(String[] args) {CacheHelper.set("gogo", "gogogogo");System.out.println(CacheHelper.get("gogo"));// gogogogoSystem.out.println(CacheHelper.get("gogog"));// null/* 如果出现都为null,检查地址和端口。端口可以到Memcached同目录配置文件看 */}}
?

?

?

后期可能会加入数据库和缓存同步功能,初步构想是用数据库的触发器来完成,也就是在需要放在缓存的数据表操作的时候触发刷新缓存的操作,这不仅让项目代码的业务考虑缩小范围,另一方面代码侵入也小,容易修改。具体实现等更新。

?

读书人网 >编程

热点推荐