zoukankan      html  css  js  c++  java
  • 使用memcachedclientXmemcached与Spring整合

    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();

     

  • 相关阅读:
    ubuntu配置jdk和tomcat+部署java项目[最佳实践]
    jQuery TreeGrid
    关于json的一些误解
    jQuery2.0.3源码分析-1(持续更新中......)
    webstrom一些常用快捷键
    js插件-Map插件
    webstorm-删除项目
    随笔-20131209
    软件开发模式对比(瀑布、迭代、螺旋、敏捷)
    javascript学习(10)——[知识储备]链式调用
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7102910.html
Copyright © 2011-2022 走看看