初學memcache緩存

 1.如果要使用memcache,需要先安裝memcache服務

下載地址:http://download.csdn.net/detail/cs1075341779/9622251

Memcache官方網站:http://www.danga.com/memcached 

安裝memcache參考http://jingyan.baidu.com/article/4f7d5712a6b6671a201927c4.html

 2.實現memcache :需要 java_memcached-release_2.6.6.jar

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemCachedManager {
	// 創建全局的唯一實例
	private static MemCachedClient mcc = new MemCachedClient();
	protected static MemCachedManager memCachedManager = 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() {
	}

	/**
	 * 獲取唯一實例.
	 * 
	 * @return
	 */
	public static MemCachedManager getInstance() {
		return memCachedManager;
	}
	

	/**
	 * 添加一個指定的值到緩存中.
	 * 
	 * @param key
	 * @param value
	 * @return
	 */
	public boolean add(String key, Object value) {
		return mcc.add(key, value);
	}
	
	public boolean set(String key, Object value) {
		return mcc.set(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);
	}

	/**
	 * 根據指定的關鍵字獲取對象.
	 * 
	 * @param key
	 * @return
	 */
	public Object get(String key) {
		return mcc.get(key);
	}
	
	public void flush(){
		mcc.flushAll();
	}
}

建立實體:

import java.io.Serializable;

public class Bean implements Serializable {
	private static final long serialVersionUID = 1945562032261336919L;
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

測試:

public static void main(String[] args) {
		MemCachedManager cache = MemCachedManager.getInstance();
		cache.add("helloworld", "hello");
		System.out.print("get value : " + cache.get("helloworld"));
	}





發佈了27 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章