MemcachedHelper工具類
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import com.whalin.MemCached.MemCachedClient;
import com.whalin.MemCached.SockIOPool;
public class MemcachedHelper {
private static MemCachedClient mcc = new MemCachedClient();
static {
InputStream in = MemcachedHelper.class.getClassLoader().getResourceAsStream("memcached.properties");
Properties pro = new Properties();
try {
pro.load(in);
} catch (IOException e) {
e.printStackTrace();
}
String server01 = pro.getProperty("Server_01");
// 創建Socket連接池實例
SockIOPool spool = SockIOPool.getInstance();
String[] servers = {server01};
Integer[] weights = {3};
// 設置服務器信息
spool.setServers(servers);
spool.setWeights(weights);
spool.setFailover(true);
// 設置初始連接數、最小和最大連接數以及最大處理時間
spool.setInitConn(5);
spool.setMinConn(5);
spool.setMaxConn(250);
spool.setMaxIdle(1000 * 60 * 60 * 6);
// 設置主線程睡眠時間
spool.setMaintSleep(30);
// 設置TCP參數、連接超時等
spool.setNagle(false);
spool.setSocketTO(3000);
spool.setSocketConnectTO(0);
spool.setAliveCheck(true);
// 初始化連接池
spool.initialize();
}
protected MemcachedHelper() {
}
protected static MemcachedHelper instance = new MemcachedHelper();
/**
* 為受保護的對象提供一個公共的訪問方法
*/
public static MemcachedHelper getInstance() {
return instance;
}
/**
* 保存數據到緩存中
* @param key
* @param value
* @return
*/
public boolean add(String key, Object value) {
return mcc.add(key, value);
}
/**
* 保存數據到緩存中并設置過期時間,單位秒
* @param key
* @param value
* @param expiryDate
* @return
*/
public boolean add(String key, Object value, Date expiryDate) {
return mcc.add(key, value, expiryDate);
}
/**
* 根據KEY替換緩存中的數據
*
* @param key
* @param value
* @return
*/
public boolean replace(String key, Object value) {
return mcc.replace(key, value);
}
public boolean replace(String key, Object value, Date expiryDate) {
return mcc.replace(key, value, expiryDate);
}
/**
* 當KEY不存在時將數據添加到緩存中 當KEY存在時則替換原來的數據
*
* @param key
* @param value
* @return
*/
public boolean set(String key, Object value) {
return mcc.set(key, value);
}
public boolean set(String key, Object value, Date expiryDate) {
return mcc.set(key, value, expiryDate);
}
/**
* 刪除緩存中的數據
*
* @param key
* @return
*/
public boolean delete(String key) {
return mcc.delete(key);
}
/**
* 根據指定的KEY獲取數據
*/
public Object get(String key) {
return mcc.get(key);
}
/**
* 判斷指定的KEY是否存在
* @param key
* @return
*/
public boolean keyExists(String key){
return mcc.keyExists(key);
}
/**
* 批量獲取數據
* @param keys
* @return
*/
public Map<String,Object> getMulit(String[] keys){
return mcc.getMulti(keys);
}
} 本文由用戶 dw7n 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!