memcached 快取引數的詳解
阿新 • • 發佈:2019-01-22
http://bbs.csdn.net/topics/390379625
protected static MemCachedClient mcc = new MemCachedClient();
protected static MemCached memCached = new MemCached();
public static long timeOut = 30 * 60 * 1000;
// 設定與快取伺服器的連線池
static {
// 伺服器列表和其權重
com.danga.MemCached.Logger.getLogger("com.danga.MemCached.MemCachedClient").setLevel(com.danga.MemCached.Logger.LEVEL_ERROR);
// Properties properties = PropertiesUtils.getProperties("/Memcached.properties");
// String serverStr = properties.getProperty("memcached.servers");
// String timeout = properties.getProperty("memcached.timeout");
String serverStr = ConfigurationUtils.getString("Memcached.Servers");
String timeout = ConfigurationUtils.getString("Memcached.Timeout");
String[] servers = {"127.0.0.1:11211"};
if(!serverStr.equalsIgnoreCase("")){
servers = new String[1];
servers[0] = serverStr;
}
if(!timeout.equalsIgnoreCase("")){
timeOut = Long.parseLong(timeout);
}
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 );
}
public static void main(String[] args)
{
try{
MemCached cache = MemCached.getInstance();
cache.add("hello", 234);
Object obj = cache.get("hello");
System.out.print("get value : " + obj);
}catch(Exception e){
e.printStackTrace();
}
}