zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    期末考试冬眠
    题解 P1457 【城堡 The Castle】
    题解 P1052 【过河】
    题解 P5663 【加工零件【民间数据】】
    与 macOS 10.12 兼容的OpenCV版本
    summarise() regrouping output 警告
    binary_crossentropy和BinaryCrossentropy的区别
    损失函数BinaryCrossentropy例子说明
    理解功能强大的sed替换命令
    理解GAN对抗神经网络的损失函数和训练过程
  • 原文地址:https://www.cnblogs.com/shz365/p/3797295.html
Copyright © 2011-2022 走看看