Java中使用memcache緩存
阿新 • • 發佈:2018-11-06
視頻 hash表 通過 println hash 數據 bject min 分布式 一、簡要概述:
memcache集群環境下緩存解決方案,是一個高性能的分布式的內存對象緩存系統,通過在內存庫裏維護一個統一的巨大的hash表,存儲各種數據,包括圖像、視頻、文件以及數據庫檢索結果等。
簡單的說就是講數據調用到存儲中,後從內存中讀取,從而大大提高讀取速度。memcache是這個項目的名稱,而memcached是它的服務端的主程序文件名。
二、常用方法:
1、初始化memcache
//初始化memcache public static void initMemcache(){ String[] servers = {"127.0.0.1:11211"}; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setFailover(true); pool.setInitConn(10); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaintSleep(30); pool.setNagle(false); pool.setSocketTO(3000); pool.setAliveCheck(true); pool.initialize(); }
2、創建緩存
/**
* 創建緩存
* @param key 鍵
* @param value 值
*/
public static void createMemcache(String key, Object value){
//創建client對象
MemCachedClient mclent = new MemCachedClient();
//創建緩存
mclent.set(key, value);
}
3、刪除指定緩存
/** * 刪除指定緩存 * @param key 鍵 */ public static void deleteMemcache(String key){ MemCachedClient mclent = new MemCachedClient(); mclent.delete(key); }
4、獲取緩存
/**
* 獲取緩存
* @param key 鍵
* @return 值
*/
public static Object getMemcache(String key){
MemCachedClient mclent = new MemCachedClient();
Object value = mclent.get(key);
return value;
}
5、獲取多個緩存
/** * 獲取多個緩存對象 * @param keys * @return */ public static Map<String, Object> getManyMemcache(String[] keys){ MemCachedClient mclent = new MemCachedClient(); Map<String, Object> m = mclent.getMulti(keys); return m; }
6、清空指定類型的緩存
/**
* 清除指定類型的緩存
* @param str
* @return
*/
public static boolean flashLMemcache(String[] str){
MemCachedClient mclent = new MemCachedClient();
mclent.flushAll(str);
return true;
}
7、清空所有緩存
/**
*清空緩存
* @return
*/
public static boolean flashMemcache(){
MemCachedClient mclent = new MemCachedClient();
mclent.flushAll();
return true;
}
三、演示與測試:
/**
* memcache,存儲調用測試
*/
AbMemcache.initMemcache();
AbMemcache.createMemcache("redant", "今天20181106");
Object obj = AbMemcache.getMemcache("redant");
System.err.println(obj);
演示結果:
/**
- memcache,刪除指定緩存
*/
AbMemcache.deleteMemcache("redant");
System.err.println(AbMemcache.getMemcache("redant"));
/** - 清空全部緩存
*/
AbMemcache.flashMemcache();
System.err.println(AbMemcache.getMemcache("redant"));
演示結果:
Java中使用memcache緩存