memcached伺服器安裝好後,使用也是非常簡單的,我們需要一個用戶端來通路伺服器,在java中我們需要一個用戶端的jar包,本文示例用的是java_memcached-release_2.5.3.jar。
好了,下面我們來簡單的看看,java中如何來通路memcached。
1 引入memcached的jar包java_memcached-release_2.5.3.jar
2 編寫通路memcached的簡單工具類。
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 mcm = new MemCachedManager();
// 設定與緩存伺服器的連接配接池
static {
// 伺服器清單和其權重
String[] servers = { "192.168.135.131: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() {
}
/**
* 擷取唯一執行個體.
*
* @return
*/
public static MemCachedManager getInstance() {
return mcm;
}
/**
* 添加一個指定的值到緩存中.
*
* @param key
* @param value
* @return
*/
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 boolean set(String key, Object value) {
return mcc.set(key, value);
}
public boolean set(String key, Object value, Date expiry) {
return mcc.set(key, value, expiry);
}
/**
* 根據指定的關鍵字擷取對象.
* @param key
* @return
*/
public Object get(String key) {
return mcc.get(key);
}
}
注意: 我将memcached用戶端的幾個操作方法都重新封裝了一次。
add(key, valued): 将要緩存的資料添加到memcached記憶體中,如果key不存在,那就添加,如果key存在,那就不添加。
set(key, value): 将指定key的值設定到memcached伺服器的記憶體中,不管key存在與否,都将設定新的value。
replace(key, value): 替換memcached伺服器記憶體中的key的值,如果key不存在,則不操作,如果key存在,那麼久替換。
3 編寫測試類
public static void main(String[] args) {
MemCachedManager cache = MemCachedManager.getInstance();
cache.set("name", "name01");
System.out.println(cache.get("name"));
}
簡單的操作如果上面的代碼,具體的需要我們自己去發現。在實際開發中怎麼使用,應該緩存那麼資料需要就實際系統和業務而定。
轉載于:https://my.oschina.net/51stick/blog/471736