1 简单介绍

Xmemcached是一个高性能的基于java nio的memcachedclient。在经过三个RC版本号后。正式公布1.10-final版本号。

xmemcached特性一览:

1、高性能

2、支持完整的memcached文本协议,二进制协议将在1.2版本号实现。

3、支持JMX,能够通过MBean调整性能參数、动态加入/移除server、查看统计等。

4、支持client统计

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

server列表。格式: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();

最新文章

  1. 使用MegaCli工具查看Raid磁盘阵列状态
  2. web 安全
  3. 二、Android学习第二天——初识Activity(转)
  4. python self introspection
  5. 【Git】笔记1
  6. Load xlsx in a folder to RDBMS table with Talend
  7. windows sever 2008 r2 - 限制ip访问
  8. HTML5 microdata
  9. 不调用库函数实现 strCpy
  10. [Python Web]部署完网站需要做的一些后续工作
  11. Gym 100952I&amp;&amp;2015 HIAST Collegiate Programming Contest I. Mancala【模拟】
  12. seacms6.5 注入漏洞1
  13. NET4.6下的UTC时间转换
  14. POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】
  15. springmvc中为我们做了什么
  16. matlab padarray函数
  17. Git从远程仓库里拉取一条本地不存在的分支方法
  18. 蜗牛慢慢爬 LeetCode 25. Reverse Nodes in k-Group [Difficulty: Hard]
  19. Storm1.0.3集群部署
  20. 实用ExtJS教程100例-002:MessageBox的三种用法

热门文章

  1. Servlet到Servlet的请求转发与重定向的区别
  2. Squirrel的安装(windows上Phoneix可视化工具)
  3. Spring Boot (25) RabbitMQ消息队列
  4. Core 项目下使用SQl语句
  5. Caffe2:段错误(核心 已转储)
  6. lamlmzhang的新博客开通了,欢迎大家的关注
  7. 微信小程序支付(JSAPI支付)
  8. 零基础学习Python培训,应该选择哪个培训班?
  9. 【剑指Offer】剑指offer题目汇总
  10. 【原创】基于NodeJS Express框架开发的一个VIP视频网站项目及源码分享