package com.channelsoft.portal.demo;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemCachedManager{
protected static MemCachedClient mcc = new MemCachedClient();
protected static MemCachedManager memCached = new MemCachedManager();
// 設定與緩存伺服器的連接配接池
static {
// 伺服器清單和其權重
String[] servers = { "127.0.0.1:11211" };
Integer[] weights = { 3 };
// 擷取socke連接配接池的執行個體對象
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);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
pool.initialize();
// 壓縮設定,超過指定大小(機關為K)的資料都會被壓縮
// mcc.setCompressEnable(true);
// mcc.setCompressThreshold(64 * 1024);
}
protected MemCachedManager() {
}
public static MemCachedManager getInstance() {
return memCached;
}
public boolean add(String key, Object value) {
return mcc.add(key, value);
}
public boolean add(String key, Object value, Date expiry) {
return mcc.add(key, value, expiry);
}
public boolean replace(String key, Object value) {
return mcc.replace(key, value);
}
public boolean replace(String key, Object value, Date expiry) {
return mcc.replace(key, value, expiry);
}
public Object get(String key) {
return mcc.get(key);
}
public static void main(String[] args) {
MemCachedManager cache = MemCachedManager.getInstance();
long startDate = System.currentTimeMillis();
// for (int i = 0; i < 10 * 1000; i++) {
cache.add("test", "中國");
// }
long endDate = System.currentTimeMillis();
long nowDate = (endDate - startDate) / 1000;
System.out.println(nowDate);
System.out.print(" get value : " + cache.get("test"));
}
}