memcached的安裝和使用

在Linux下安裝運行memcache java


cd /tmp
#可去官網獲取相關版本連接
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar -zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure --prefix=/usr/local/libevent
make
make install

cd /tmp
#可去官網獲取相關版本連接
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar -zxvf memcached-1.4.15.tar.gz
cd memcached-1.4.15
#安裝memcached時須要指定libevent的安裝位置
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make
make install

#memcached不能使用root用戶運行
#su user
#/usr/local/memcached/bin/memcached

su user
/usr/local/memcached/bin/memcached -p 10000
/usr/local/memcached/bin/memcached -p 11211


memcached啓動參數描述:(可用 ./memcached -help 查看)


-d :啓動一個守護進程,


-m:分配給Memcache使用的內存數量,單位是MB,默認是64MB,


-u :運行Memcache的用戶


-l  :監聽的服務器IP地址


-p :設置Memcache監聽的端口,默認是11211    注:-p(p爲小寫)


-c :設置最大併發鏈接數,默認是1024


-P :設置保存Memcache的pid文件   注:-P(P爲大寫)


若是要結束Memcache進程,執行:kill cat pid文件路徑



java調用memcached git

這裏使用Memcached-Java-Client調用 github

下載地址https://github.com/gwhalin/Memcached-Java-Client/downloads 算法

我使用的是java_memcached-release_2.6.6.zip  shell

解壓後將裏面的4個jar包都導入eclipse工程 服務器

import java.util.HashMap;
import java.util.Map;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemcachedUtils {

	public static void main(String[] args) {
		//初始化
		String[] servers = { "192.168.241.128:10000","192.168.241.128:11211" };
		SockIOPool pool = SockIOPool.getInstance();
		pool.setServers(servers);//設置鏈接池可用的cache服務器列表,server的構成形式是IP:PORT(如:127.0.0.1:11211)
		pool.setFailover(true);//設置容錯開關。設置爲TRUE,當前socket不可用時,程序會自動查找可用鏈接並返回,不然返回NULL,默認狀態是true,建議保持默認。
		pool.setInitConn(10);//設置開始時每一個cache服務器的可用鏈接數
		pool.setMinConn(5);//設置每一個服務器最少可用鏈接數
		pool.setMaxConn(250);//設置每一個服務器最大可用鏈接數
		pool.setMaintSleep(30);//設置鏈接池維護線程的睡眠時間,設置爲0,維護線程不啓動
		pool.setNagle(false);//設置是否使用Nagle算法,若是通信數據量一般都比較大(相對TCP控制數據)並且要求響應及時,所以該值須要設置爲false(默認是true)
		pool.setSocketTO(3000);//設置socket的讀取等待超時值
		pool.setAliveCheck(true);//設置鏈接心跳監測開關。設爲true則每次通訊都要進行鏈接是否有效的監測,形成通訊次數倍增,加大網絡負載,所以該參數應該在對HA要求比較高的場合設爲TRUE,默認狀態是false
		pool.initialize();//設置完pool參數後最後調用該方法,啓動pool。

		
		//創建MemcachedClient實例
		MemCachedClient memCachedClient = new MemCachedClient();
		Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
		Map<String, String> sub = new HashMap<String, String>();
		sub.put("a", "b");
		map.put("sub", sub);
		System.out.println(map);
		memCachedClient.set("key", map);
		System.out.println(memCachedClient.get("key"));
		
	}
}


要存儲的對象必須實現序列化接口 Serializable 網絡

在配置的時候能夠根據本身的需求設置初始化參數 ,百度、google搜索   Memcached Java Client API詳解 併發

相關文章
相關標籤/搜索