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

下面记录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"));// gogogogo
- System.out.println(CacheHelper.get("gogog"));// null
- /* 如果出现都为null,检查地址和端口。端口可以到Memcached同目录配置文件看 */
- }
- }
后期可能会加入数据库和缓存同步功能,初步构想是用数据库的触发器来完成,也就是在需要放在缓存的数据表操作的时候触发刷新缓存的操作,这不仅让项目代码的业务考虑缩小范围,另一方面代码侵入也小,容易修改。具体实现等更新。