magent做memcached集群

magent是一款开源的Memcached代理服务器软件,其项目网址为:
http://code.google.com/p/memagent/

一、安装步骤:

  • 编译安装libevent:

wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ ./configure --prefix=/usr make && make install cd ../

  • 编译安装Memcached:
wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz tar zxvf memcached-1.2.6.tar.gz cd memcached-1.2.6/ ./configure --with-libevent=/usr make && make install cd ../
  • 编译安装magent:
mkdir magent cd magent/ wget http://memagent.googlecode.com/files/magent-0.5.tar.gz tar zxvf magent-0.5.tar.gz /sbin/ldconfig sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile make cp magent /usr/bin/magent cd ../

二、使用实例:

memcached -m 1 -u root -d -l 127.0.0.1 -p 11211 memcached -m 1 -u root -d -l 127.0.0.1 -p 11212 memcached -m 1 -u root -d -l 127.0.0.1 -p 11213 magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 127.0.0.1:11212 -b 127.0.0.1:11213

1、分别在11211、11212、11213端口启动3个Memcached进程,在12000端口开启magent代理程序;

  2、11211、11212端口为主Memcached,11213端口为备份Memcached;
  3、连接上12000的magent,set key1和set key2,根据哈希算法,key1被写入11212和11213端口的Memcached,key2被写入11212和11213端口的Memcached;
  4、当11211、11212端口的Memcached死掉,连接到12000端口的magent取数据,数据会从11213端口的Memcached取出;
   5、当11211、11212端口的Memcached重启复活,连接到12000端口,magent会从11211或11212端口的 Memcached取数据,由于这两台Memcached重启后无数据,因此magent取得的将是空值,尽管11213端口的Memcached还有数 据(此问题尚待改进)。

命令详解:

-h this message -u uid -g gid -p port, default is 11211. (0 to disable tcp support) -s ip:port, set memcached server ip and port -b ip:port, set backup memcached server ip and port -l ip, local bind ip address, default is 0.0.0.0 -n number, set max connections, default is 4096 -D do not go to background -k use ketama key allocation algorithm -f file, unix socket path to listen on. default is off -i number, max keep alive connections for one memcached server, default is 20 -v verbose

三、整个测试流程:

[root@centos52 ~]# telnet 127.0.0.1 12000 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. stats memcached agent v0.4 matrix 1 -> 127.0.0.1:11211, pool size 0 matrix 2 -> 127.0.0.1:11212, pool size 0 END set key1 0 0 8 zhangyan STORED set key2 0 0 8 zhangyan STORED quit Connection closed by foreign host.

[root@centos52 ~]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get key1 END get key2 VALUE key2 0 8 zhangyan END quit Connection closed by foreign host.

[root@centos52 ~]# telnet 127.0.0.1 11212 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get key1 VALUE key1 0 8 zhangyan END get key2 END quit Connection closed by foreign host.

[root@centos52 ~]# telnet 127.0.0.1 11213 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get key1 VALUE key1 0 8 zhangyan END get key2 VALUE key2 0 8 zhangyan END quit Connection closed by foreign host.

模拟11211、11212端口的Memcached死掉

[root@centos52 ~]# ps -ef | grep memcached root 6589 1 0 01:25 ? 00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11211 root 6591 1 0 01:25 ? 00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11212 root 6593 1 0 01:25 ? 00:00:00 memcached -m 1 -u root -d -l 127.0.0.1 -p 11213 root 6609 6509 0 01:44 pts/0 00:00:00 grep memcached [root@centos52 ~]# kill -9 6589 [root@centos52 ~]# kill -9 6591 [root@centos52 ~]# telnet 127.0.0.1 12000 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get key1 VALUE key1 0 8 zhangyan END get key2 VALUE key2 0 8 zhangyan END quit Connection closed by foreign host.

模拟11211、11212端口的Memcached重启复活

[root@centos52 ~]# memcached -m 1 -u root -d -l 127.0.0.1 -p 11211 [root@centos52 ~]# memcached -m 1 -u root -d -l 127.0.0.1 -p 11212 [root@centos52 ~]# telnet 127.0.0.1 12000 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get key1 END get key2 END quit Connection closed by foreign host.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值