使用memcached客戶端Xmemcached與Spring整合

yzgn4350 8年前發布 | 38K 次閱讀 緩存服務器 memcached

來自: http://blog.csdn.net//chenleixing/article/details/47035409


1 簡介
Xmemcached是一個高性能的基于java nio的memcached客戶端。在經過三個RC版本后,正式發布1.10-final版本。
xmemcached特性一覽:
1、高性能
2、支持完整的memcached文本協議,二進制協議將在1.2版本實現。
3、支持JMX,可以通過MBean調整性能參數、動態添加/移除server、查看統計等。
4、支持客戶端統計
5、支持memcached節點的動態增減。
6、支持memcached分布:余數分布和一致性哈希分布。
7、更多的性能調整選項。


2 與Spring整合
XMemcached從1.1.2開始,能靈活方便的與Spring Framework整合在一起使用。
2.1 最簡單例子
 
<bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
 
<property name="servers">
 
<value>host1:port1 host2:port2</value>
</property>
</bean>
然后在bean中就可以使用memcachedClient了。
2.2 復雜一點兒的例子
<bean name="memcachedClient"
class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean">
<property name="servers">
<value>host1:port1 host2:port2 host3:port3</value>
</property>
<property name="weights">
<list>
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</property>
<property name="sessionLocator">
<bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean>
</property>
<property name="transcoder">
<bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" />
</property>
<property name="bufferAllocator">
<bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean>
</property>
</bean>

其中各參數的意義:

參數

含義

servers

服務器列表,格式:ip:port

weights

主機映射:host1對應1號、host2對應2號..

sessionLocator

Session

 分配器,有自帶的,影響分布式

 

transcoder

通信編碼方式

bufferAllocator

緩沖區分配器


注:

默認標準Hash, hash(key) mod server_count (余數分布)
 

MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("server1:11211 server2:11211 server3:11211")); MemcachedClient mc = builder.build();




可以改為Consistent Hash(一致性哈希):

MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("server1:11211 server2:11211 server3:11211")); builder.setSessionLocator(new KetamaMemcachedSessionLocator()); MemcachedClient mc = builder.build();

 

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