xmemcached spring user guide

http://code.google.com/p/xmemcached/wiki/User_Guide_zh html

 

XMemcached簡介

XMemcached是一個新java memcached client。也許你還不知道memcached是什麼?能夠先看看這裏。簡單來講,Memcached 是一個高性能的分佈式內存對象的key-value緩存系統,用於動態Web應用以減輕數據庫負載,如今也有不少人將它做爲內存式數據庫在使用,memcached經過它的自定義協議與客戶端交互,而XMemcached就是它的一個java客戶端實現。 java

Memcached的java客戶端已經存在兩個了:官方提供的基於傳統阻塞io由Greg Whalin維護的客戶端、Dustin Sallings實現的基於java nio的Spymemcached。另外還有一些在此基礎上的改進版本。相比於這些客戶端,XMemcached有什麼優勢呢?或者說,它的主要特性有哪些? 算法

XMemcached的主要特性

高性能

XMemcached一樣是基於java nio的客戶端,java nio相比於傳統阻塞io模型來講,有效率高(特別在高併發下)和資源耗費相對較少的優勢。傳統阻塞IO爲了提升效率,須要建立必定數量的鏈接造成鏈接池,而nio僅須要一個鏈接便可(固然,nio也是能夠作池化處理),相對來講減小了線程建立和切換的開銷,這一點在高併發下特別明顯。所以XMemcached與Spymemcached在性能都很是優秀,在某些方面(存儲的數據比較小的狀況下)Xmemcached比Spymemcached的表現更爲優秀,具體能夠看這個Java Memcached Clients Benchmark數據庫

支持完整的協議

Xmemcached支持全部的memcached協議,包括1.4.0正式開始使用的二進制協議編程

支持客戶端分佈

Memcached的分佈只能經過客戶端來實現,XMemcached實現了此功能,而且提供了一致性哈希(consistent hash)算法的實現。 緩存

容許設置節點權重

XMemcached容許經過設置節點的權重來調節memcached的負載,設置的權重越高,該memcached節點存儲的數據將越多,所承受的負載越大。 併發

動態增刪節點

XMemcached容許經過JMX或者代碼編程實現節點的動態添加或者移除,方便用戶擴展和替換節點等。 框架

支持JMX

XMemcached經過JMX暴露的一些接口,支持client自己的監控和調整,容許動態設置調優參數、查看統計數據、動態增刪節點等。 分佈式

與Spring框架和Hibernate-memcached的集成

鑑於不少項目已經使用Spring做爲IOC容器,所以XMemcached也提供了對Spring框架的集成支持。Hibernate-memcached是一個容許將memcached做爲hibernate的二級緩存的開源項目,默認是使用Spymemcached,Xmemcached提供了對這個項目的支持,容許替換Spymemcached. ide

客戶端鏈接池

剛纔已經提到java nio一般對一個memcached節點使用一個鏈接,而XMemcached一樣提供了設置鏈接池的功能,對同一個memcached能夠建立N個鏈接組成鏈接池來提升客戶端在高併發環境下的表現,而這一切對使用者來講倒是透明的。啓用鏈接池的前提條件是保證數據之間的獨立性或者數據更新的同步,對同一個節點的各個鏈接之間是沒有作更新同步的,所以應用須要保證數據之間是相互獨立的或者所有采用CAS更新來保證原子性。

可擴展性

XMemcached是基於java nio框架yanf4j實現的,所以在實現上結構相對清楚,分層比較明晰,在xmemcached 1.2.5以後已經將yanf4j合併到xmemcached,所以再也不須要依賴yanf4j,下面是XMemcached的主要類的UML圖

===========具體參考用戶手冊

http://code.google.com/p/xmemcached/wiki/User_Guide_zh

相關文章
相關標籤/搜索