天天看點

memcache的使用(轉)--改進

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")); 

 } 

  

}      

繼續閱讀