在某用戶(可能是唯一用戶)的反饋和建議下,xmemcached做了不少改進(jìn)和修正,特此感謝。
XMemcached發(fā)布1.10-RC3,這可能是1.10 release前最后一個RC版本,此版本的主要改進(jìn):
1、引入XMemcachedClientMBean接口,添加一個新的MBean,主要功能是允許通過JMX
動態(tài)添加或者移除memcached server。如圖:
除了通過JMX之外,也可以通過編程來動態(tài)添加或者移除memcachd server節(jié)點。例如:
XMemcachedClient client
//添加server
client.addServer("192.168.111.222:11211 192.168.111.221:11211");
//移除
client.removeServer("192.168.111.222:11211 192.168.111.221:11211");
2、引入新的cas重載方法,允許用戶自主傳入GetsResponse(gets協(xié)議的返回結(jié)果),而不需要xmemcached去自動獲取首次gets結(jié)果。
<T> boolean
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
<T> boolean
cas(java.lang.String key, GetsResponse<T> getsReponse, CASOperation<T> operation)
3、重構(gòu)和修改bug等,重命名transcoder包防止與spymemcached沖突,更多單元測試和相應(yīng)重構(gòu)。
4、附帶最新的測試結(jié)果
測試環(huán)境:
服務(wù)端:memcached server跑在4核,4G內(nèi)存的linux機(jī)器上,linux內(nèi)核是2.6.9-55。 memcached啟動參數(shù):memcached -p 12000 -m 2048 -d
客戶端:跑在8核,16G內(nèi)存的linux機(jī)器上,內(nèi)核是2.6.9-67。xmemcached版本是1.10-RC3,spymemcached的版本是2.3.1,兩者都是默認(rèn)配置。
測試用例: key和value都是100個字節(jié)的字符串,啟動N個線程并發(fā)地操作同一個memcached client,進(jìn)行set、get、delete操作,各操作總次數(shù)均在100萬次以上,最后統(tǒng)計TPS。
具體結(jié)果請看下面
結(jié)果說明:
圖片采用jfreechart生成,spymemcached在100個并發(fā)及以上,get操作無法設(shè)置超時時間導(dǎo)致拋出很多超時異常,因此無法給出有價值的數(shù)據(jù)。
下載地址在
這里