• Xmemcached使用之与Spring整合


    转自:http://hi.baidu.com/tjbaso/item/22f3c32b062ebefb50fd87b8

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

  • 相关阅读:
    ECMAScript2017之async function
    ES3之closure ( 闭包 )
    RxJS之AsyncSubject
    RxJS之BehaviorSubject
    RxJS之Subject主题 ( Angular环境 )
    RxJS之工具操作符 ( Angular环境 )
    RxJS之转化操作符 ( Angular环境 )
    RxJS之过滤操作符 ( Angular环境 )
    RxJS之组合操作符 ( Angular环境 )
    关于Qt的StyleSheet作用范围
  • 原文地址:https://www.cnblogs.com/shz365/p/3797295.html
Copyright © 2020-2023  润新知