xmemcached + 3节点memcached 试验

刚成功跑通了xmemcached + 3节点memcached 试验,记录一下试验过程:
----环境:
VMWare跑了3台ubuntu,ip分别是192.168.66.91  192.168.66.92  192.168.66.93
3台ubuntu都装了memcached
eclipse装在192.168.66.91上,用于跑xmemcached

----过程:
首先,memcached的安装、启动和验证就不说了,按照虎皇的ppt来就行。
要注意的是,memcached正常跑起来后,需要在每一台机器上执行下面这行命令,别的机器才能访问当前机器的memcached:
memcached -l 192.168.66.xx:11211 -u root -d
该命令的作用是绑定当前机器的对外ip,否则只能本机用127.0.0.1访问。

其次,在eclipse中建立java工程,并引入下面几个包:
1111.jpg 
然后执行以下代码:

import java.io.IOException;
import java.util.concurrent.TimeoutException;

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.command.BinaryCommandFactory;
import net.rubyeye.xmemcached.exception.MemcachedException;
import net.rubyeye.xmemcached.utils.AddrUtil;



public class MemcachedClientTest {

        public static void main(String[] args) {
                //指定三台跑memcached的服务器
                MemcachedClientBuilder builder = new XMemcachedClientBuilder(
                                AddrUtil.getAddresses("192.168.66.91:11211 192.168.66.92:11211 192.168.66.93:11211"),
                                new int[] {1,1,1});
                
                // 设置连接池大小,即客户端个数
                builder.setConnectionPoolSize(50);

                // 宕机报警
                builder.setFailureMode(true);

                // 使用二进制文件
                builder.setCommandFactory(new BinaryCommandFactory());

                MemcachedClient memcachedClient = null;
                try {
                        memcachedClient = builder.build();
                        try {
                                // 设置/获取
                                memcachedClient.set("zlex", 36000, "set/get");
                                System.out.println(memcachedClient.get("zlex"));
                                
                                //试验一次性哈希,以下两条数据将分步到与存zlex不同的节点
                                memcachedClient.set("lion", 36000, "comeon");
                                memcachedClient.set("leon", 36000, "hello");


                                // 替换
                                memcachedClient.replace("zlex", 36000, "replace");
                                System.out.println(memcachedClient.get("zlex"));


                                // 移除
                                memcachedClient.delete("zlex");                                
                                memcachedClient.delete("lion");
                                memcachedClient.delete("leon");
                                
                        } catch (TimeoutException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (MemcachedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }

                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } finally {
                        if (memcachedClient != null) {
                                try {
                                        memcachedClient.shutdown();
                                } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                }
        }
}


单步调试会发现插入的3条数据分布在了两台服务器上,zlex和leon在同一台服务器,应该是zlex和leon的哈希值落在了同一区间:
22222.jpg 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值