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