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

     

  • 相关阅读:
    shell遍历文件夹并执行命令
    安装PIL的坑
    iptables不小心把127.0.0.1封了,导致redis连不上
    python读取中文
    不要在基类析构函数中调用纯虚函数,否则运行时会报错“pure virtual method called”
    阿里云64位centos6.3系统上编译安装redis
    Git
    Easy Mock
    Sortable
    几个框架
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7102910.html
Copyright © 2011-2022 走看看