memcached client for java api,Memcached Client Forjava API
java_memcached-release 關鍵類及方法整理說明如下。 SockIOPool ???這個類用來創(chuàng)建管理客戶端和服務器通訊連接池,客戶端主要的工作包括數(shù)據(jù)通訊、服務器定位、hash 碼生成等都是由這個類完成的。 1.public static SockIOPool getInstance() ???獲得連接池的單態(tài)方法。這個方法有一個重載方法getInstance( String poolName ),每個poolName 只構(gòu)造一個SockIOPool 實例。缺省構(gòu)造的poolName 是default。如果在客戶端配置多個memcached 服務,一定要顯式聲明poolName。 2.public void setServers( String[] servers ) ???設置連接池可用的cache 服務器列表,server 的構(gòu)成形式是IP:PORT(如:127.0.0.1:11211) 3.public void setWeights( Integer[] weights ) ???設置連接池可用cache 服務器的權重,和server 數(shù)組的位置一一對應其實現(xiàn)方法是通過根據(jù)每個權重在連接池的bucket 中放置同樣數(shù)目的server(如下代碼所示),因此所有權重的最大公約數(shù)應該是1,不然會引起bucket 資源的浪費。 4.public void setInitConn( int initConn ) ???設置開始時每個cache 服務器的可用連接數(shù) 5.public void setMinConn( int minConn ) ???設置每個服務器最少可用連接數(shù) 6.public void setMaxConn( int maxConn ) ???設置每個服務器最大可用連接數(shù) 7.public void setMaxIdle( long maxIdle ) ???設置可用連接池的最長等待時間 8.public void setMaintSleep( long maintSleep ) ???設置連接池維護線程的睡眠時間 設置為0,維護線程不啟動 維護線程主要通過log 輸出socket 的運行狀況,監(jiān)測連接數(shù)目及空閑等待時間等參數(shù)以控制連接創(chuàng)建和關閉。 9.public void setNagle( boolean nagle ) ???設置是否使用Nagle 算法,因為我們的通訊數(shù)據(jù)量通常都比較大(相對TCP 控制數(shù)據(jù))而且要求響應及時,因此該值需要設置為false(默認是true) 10.public void setSocketTO( int socketTO ) ???設置socket 的讀取等待超時值 11.public void setSocketConnectTO( int socketConnectTO ) ???設置socket 的連接等待超時值 12.public void setAliveCheck( boolean aliveCheck ) ???設置連接心跳監(jiān)測開關。 設為true 則每次通信都要進行連接是否有效的監(jiān)測,造成通信次數(shù)倍增,加大網(wǎng)絡負載,因此該參數(shù)應該在對HA 要求比較高的場合設為TRUE,默認狀態(tài)是false。 13.public void setFailback( boolean failback ) ???設置連接失敗恢復開關 設置為TRUE,當宕機的服務器啟動或中斷的網(wǎng)絡連接后,這個socket 連接還可繼續(xù)使用,否則將不再使用,默認狀態(tài)是true,建議保持默認。 14.public void setFailover( boolean failover ) ???設置容錯開關 設置為TRUE,當當前socket 不可用時,程序會自動查找可用連接并返回,否則返回NULL,默認狀態(tài)是true,建議保持默認。 15.public void setHashingAlg( int alg ) ???設置hash 算法 alg=0 使用String.hashCode()獲得hash code,該方法依賴JDK,可能和其他客戶端不兼容,建議不使用 alg=1 使用original 兼容hash 算法,兼容其他客戶端; alg=2 使用CRC32 兼容hash 算法,兼容其他客戶端,性能優(yōu)于original 算法; alg=3 使用MD5 hash 算法采用前三種hash 算法的時候,查找cache 服務器使用余數(shù)方法。采用最后一種hash 算法查找cache 服務時使用consistent 方法。 16.public void initialize() ???設置完pool 參數(shù)后最后調(diào)用該方法,啟動pool。 MemcachedClient 1.public void setCompressEnable( boolean compressEnable ) ???設定是否壓縮放入cache 中的數(shù)據(jù) 默認值是ture 如果設定該值為true,需要設定CompressThreshold 2.public void setCompressThreshold( long compressThreshold ) ???設定需要壓縮的cache 數(shù)據(jù)的閾值 默認值是30k 3.public void setPrimitiveAsString( boolean primitiveAsString ) ???設置cache 數(shù)據(jù)的原始類型是String .默認值是false 只有在確定cache 的數(shù)據(jù)類型是string 的情況下才設為true,這樣可以加快處理速度。 4.public void setDefaultEncoding( String defaultEncoding ) ???當primitiveAsString 為true 時使用的編碼轉(zhuǎn)化格式 默認值是utf‐8 如果確認主要寫入數(shù)據(jù)是中文等非ASCII 編碼字符,建議采用GBK 等更短的編碼格式 5.cache 數(shù)據(jù)寫入操作方法 5.1.set 方法 ???將數(shù)據(jù)保存到cache 服務器,如果保存成功則返回true 如果cache 服務器存在同樣的key,則替換之 set 有5 個重載方法,key 和value 是必須的參數(shù),還有過期時間,hash 碼,value 是否字符串三個可選參數(shù) 5.2.add 方法 ???將數(shù)據(jù)添加到cache 服務器,如果保存成功則返回true 如果cache 服務器存在同樣key,則返回false add 有4 個重載方法,key 和value 是必須的參數(shù),還有過期時間,hash 碼兩個可選參數(shù) 5.3.replace 方法 ???將數(shù)據(jù)替換cache 服務器中相同的key,如果保存成功則返回true如果cache 服務器不存在同樣key,則返回false replace 有4 個重載方法,key 和value 是必須的參數(shù),還有過期時間,hash 碼兩個可選參數(shù) 建議分析key 的規(guī)律,如果呈現(xiàn)某種規(guī)律有序,則自己構(gòu)造hash 碼,提高存儲效率 6.cache 數(shù)據(jù)讀取操作方法 ???使用get 方法從cache 服務器獲取一個數(shù)據(jù) 如果寫入時是壓縮的或序列化的,則get的返回會自動解壓縮及反序列化 get 方法有3 個重載方法,key 是必須的參數(shù),hash 碼和value是否字符串是可選參數(shù) .
總結(jié)
以上是生活随笔為你收集整理的memcached client for java api,Memcached Client Forjava API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础课程4(看代码看注释)-
- 下一篇: 【OpenCV 例程200篇】77. O