這是新的項目架構,得說,這次很大膽的用了Maven 的多子產品項目設計來重新做這個龐大的項目。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIuVmdh1WLkVGajF2YtVWbvwVapNjQ2o3LcR2Lc12bj5Ca09mY0lmL3d3dvw1LcpDc0RHaiojIsJye.jpg)
下面記錄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
[1.模拟應用伺服器(用戶端):所需jar:commons-io-1.3.2.jar,jersey-client-1.8.jar,jersey-core-1.8.jar編輯用戶端代碼: // 圖檔名稱生成政策 &nbs..]
3. 這樣它就會自動在本地倉庫裡面加入自定義的jar 依賴。
接着在項目添加以下依賴:
com.danga
memcached
2.5.3
接着在項目中寫Memcached 的應用類,下面是根據官方demo 修改的,僅供參考:
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 {
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);
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
}
}
後期可能會加入資料庫和緩存同步功能,初步構想是用資料庫的觸發器來完成,也就是在需要放在緩存的資料表操作的時候觸發重新整理緩存的操作,這不僅讓項目代碼的業務考慮縮小範圍,另一方面代碼侵入也小,容易修改。具體實作等更新。