magent使用
一、Linux环境下安装magent:
1、安装libevent:
wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz tar -xzvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable ./configure --prefix=/usr/local/libevent make make install |
2、安装Memcached:
wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz tar -xzvf memcached-1.4.4.tar.gz cd memcached-1.4.4 ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent make make install ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib/
|
3、编译安装magent:
mkdir magent cp magent-0.5.tar.gz magent cd magent tar -xzvf magent-0.5.tar.gz /sbin/ldconfig sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile vi magent.c 添加 #include <limits.h> make
|
二、使用实例:
memcached -m 1 -u root -d -l 192.168.1.219 -p 11211 memcached -m 1 -u root -d -l 192.168.1.219 -p 11212 memcached -m 1 -u root -d -l 192.168.1.219 -p 11213
magent -u root -n 51200 -l 192.168.1.219 -p 12000 -s 192.168.1.219:11211 -s 192.168.1.219:11212 -b 192.168.1.219: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取出。
三、整个测试流程:
# telnet 192.168.1.219 12000 Trying 1192.168.1.219... Connected to 192.168.1。219. Escape character is '^]'. stats memcached agent v0.4 matrix 1 -> 192.168.1.219:11211, pool size 0 matrix 2 -> 192.168.1.219:11212, pool size 0 END set key1 0 0 5 reesun STORED set key2 0 0 6 reesun1 STORED quit Connection closed by foreign host.
# telnet 192.168.1.219 11211 Trying 192.168.1.219... Connected to 192.168.1.219. Escape character is '^]'. get key1 END get key2 VALUE key2 0 6 reesun1 END quit Connection closed by foreign host.
# telnet 192.168.1.219 11212 Trying 192.168.1.219... Connected to 1192.168.1.219. Escape character is '^]'. get key1 VALUE key1 0 5 reesun END get key2 END quit Connection closed by foreign host.
# telnet 192.168.1.219 11213 Trying 192.168.1.219... Connected to 1192.168.1.219. Escape character is '^]'. get key1 VALUE key1 0 5 reesun END get key2 VALUE key2 0 6 reesun1 END quit Connection closed by foreign host.
|