在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
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詳解 併發