1.repcached介绍
使用repcached可以实现memcached的复制功能:
它是一个单master单slave的方案。但是它的master/slave都是可读写的,而且可以相互同步。如果master down掉,slave侦测到连接断了,它会自动listen而成为master。如果slave down掉,master也会侦测到连接断了,它会重新listen等待新的slave加入。
2.安装
安装文件准备
libevent-2.0.22-stable.tar.gz
memcached-1.4.22.tar.gz
memcached-1.2.8-repcached-2.2.1.tar.gz
2.1安装libevent (memcached依赖libevent)
tar –zxvf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure –prefix=/usr/local
make
make install
测试libevent是否安装成功:
Ls –al /usr/local/lib | grep libevent
2.2安装memcached
在配置时需要指定libevent的安装路径即./configure–with-libevent=/usr/local
tar xvf memcached-1.4.22.tar.gz
./configure–with-libevent=/usr/local
make
make install
测试memcached是否安装成功:
ls –al /usr/local/bin/memcached
2.3安装repcached
tar -zxvf memcached-1.2.8-repcached-2.2.1.tar.gz
cd memcached-1.2.8-repcached-2.2.1
./configure --enable-replication
make
make install
注:
执行make命令,会发生错误,进入repcached的解压缩目录,打开文件memcached.c,找到如下的定义,去掉 第3行和第5行的#if 块(#if defined(__FreeBSD__) || defined(__APPLE__)),如下:
/* FreeBSD 4.x doesn‘t have IOV_MAX exposed. */ #ifndef IOV_MAX #if defined(__FreeBSD__) || defined(__APPLE__) # define IOV_MAX 1024 #endif #endif
2.4启动master
/usr/local/bin/memcached -p 11211 -v -d -u root
注:该主机ip为192.168.1.254
2.5启动slave
/usr/local/bin/ memcached -p 11211 -x 192.168.1.254 -v -d -u root
注:该主机ip为192.168.1.251
slave的启动和master类似,只是多了-x参数,指定复制的ip,如果复制端口不是11212,则需要-X参数指定
3.测试
通过telnet 192.168.1.254 11211 连接master repcached保存数据
set hello 0 0 5
hello
然后通过telnet 192.168.1.251 11211连接slave repcached,确认刚才通过masterrepcached保存的数据是否已经被复制了:
get hello