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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!