您好,登錄后才能下訂單哦!
memcached如何在java項目中使用?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Memcached是一個高性能的分布式內存對象緩存系統,本文介紹了java 使用memcached以及spring 配置memcached完整實例代碼,分享給大家
本文涉及以下內容:
1,要使用的jar包
2,java 使用memcached
3,spring 配置memcached
導入jar
java_memcached-release_2.6.6.jar
commons-pool-1.5.6.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.1.jar
示例代碼
創建一個memcached 工廠類
public class CacheHelper { private static MemCachedClient mcc = new MemCachedClient(); private CacheHelper() { } static { String[] servers = {"71.0.0.29:2222", "71.0.0.29:2223"}; Integer[] weights = {1, 2}; 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); pool.setNagle(false); // 禁用nagle算法 pool.setSocketConnectTO(0); pool.setSocketTO(3000); //3秒超時 pool.setHashingAlg(3); pool.initialize(); } public static MemCachedClient getMemCachedClient() { return mcc; } }
測試
MemCachedClient mcc = CacheHelper.getMemCachedClient(); mcc.add("k8", "1234455"); MemCachedClient mcc = CacheHelper.getMemCachedClient(); UserModel user = new UserModel("12322222", "lihao", 28); boolean is = mcc.add("user2",user);
public void setInitConn( int initConn ) //設置開始時每個cache服務器的可用連接數 public void setMinConn( int minConn ) //設置每個服務器最少可用連接數 public void setMaxConn( int maxConn ) //設置每個服務器最大可用連接數 public void setMaxIdle( long maxIdle ) //設置可用連接池的最長等待時間 public void setMaintSleep( long maintSleep ) //設置連接池維護線程的睡眠時間 ,設置為0,維護線程不啟動。維護線程主要通過log輸出 //socket的運行狀況,監測連接數目及空閑等待時間等參數以控制連接創建和關閉。 public void setNagle( boolean nagle ) //設置是否使用Nagle算法,因為我們的通訊數據量通常都比較大(相對TCP控制數據)而且要求響 應及時,因此該值需要設置為false(默認是true) ublic void setSocketTO( int socketTO ) //設置socket的讀取等待超時值 public void setSocketConnectTO( int socketConnectTO ) //設置socket的連接等待超時值 public void setHashingAlg( int alg ) // 設置hash算法 // alg=0 使用String.hashCode()獲得hash code,該方法依賴JDK,可能和其他客戶端不兼容,建議不使用 // alg=1 使用original 兼容hash算法,兼容其他客戶端 // alg=2 使用CRC32兼容hash算法,兼容其他客戶端,性能優于original算法 // alg=3 使用MD5 hash算法 // 采用前三種hash算法的時候,查找cache服務器使用余數方法。采用最后一種hash算法查找cache 服務時使用一致性hash方法 //public void initialize() 設置完pool參數后最后調用該方法,啟動pool。
memcached 和Spring 繼承
<!--memcached 客戶端 SocketPool--> <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory- method="getInstance" init-method="initialize" destroy-method="shutDown"> <constructor-arg><value>neeaMemcachedPool</value></constructor-arg> <property name= "servers"> <list> <value>192.168.1.106:2222</value> <value>192.168.1.106:2223</value> </list> </property> <property name="weights"> <list> <value>1</value> <value>2</value> </list> </property> <property name="initConn"> <value>5</value> </property> <property name="minConn"> <value>5</value> </property> <property name="maxConn"> <value>250</value> </property> <property name="maintSleep"> <value>30</value> </property> <property name="nagle"> <value>false</value> </property> <property name="maxIdle"> <value>6000</value> </property> <property name="socketTO"> <value>3000</value> </property> </bean> <!--memcached client--> <bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient"> <constructor-arg> <value>neeaMemcachedPool</value> </constructor-arg> </bean>
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。