xmemcached 1.3.4 正式發布

openkk 13年前發布 | 11K 次閱讀 xmemcached

Xmemcached是基于java nio實現的高性能可擴展的memcached客戶端。

實際上是基于我實現的一個nio框架Yan4j的基礎上實現的(目前是基于yanf4j 0.61-snapshot),序列化機制使用spymemcached的Transcoder并做了部分改造。

項目地址:http://code.google.com/p/xmemcached/


xmemcached發布1.3.4版本,主要改進如下:

1、修復一個相對嚴重的bug,在解析二進制協議時如果遇到從服務端返回的錯誤信息,會導致連接異常斷開;如果你沒有使用binary協議,不會遇到此問題。建議使用xmemcached并且使用二進制協議的朋友升級到此版本。

2、允許XMemcachedClientFactoryBean配置opTimeout選項。

3、添加RoundRobinMemcachedSessionLocator,輪詢的連接選擇器,僅用于kestrel或者memcacheq集群,這些應用都不要求同一個key要保存在固定的服務器上,而僅是作為集群分擔負載。

4、KetamaMemcachedSessionLocator添加額外選項,允許配置是否兼容 nginx-upstream-consistent,這個是網友 wolfg1969貢獻的patch。如果要使得xmc的一致性哈希算法兼容nginx-upstream-consistent,只要設置 cwNginxUpstreamConsistent為true即可,示范代碼:

MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(servers));
builder.setSessionLocator(new KetamaMemcachedSessionLocator(true));

5、修復bug,包括issue 132 , issue 142 , issue 133 , issue 139 , issue 142 , issue 145 ,issue 150等。

memcached是一套分布式的快取系統,當初是Danga Interactive為了LiveJournal所發展的,但目前被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權釋出。

memcached缺乏認證以及安全管制,這代表應該將memcached服務器放置在防火墻后。

memcached的API使用三十二位元的循環冗余校驗(CRC-32)計算鍵值后,將資料分散在不同的機器上。當表格滿了以后,接下來新增的資料會以LRU機制替換掉。由于memcached通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是后端的數據庫)需要額外的程式碼更新memcached內的資料。

memcached具有多種語言的客戶端開發包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!