1.repcached介绍shell
使用repcached能够实现memcached的复制功能:memcached
它是一个单master单slave的方案。可是它的master/slave都是可读写的,并且能够相互同步。若是master down掉,slave侦测到链接断了,它会自动listen而成为master。若是slave down掉,master也会侦测到链接断了,它会从新listen等待新的slave加入。测试
2.安装
spa
安装文件准备
code
libevent-2.0.22-stable.tar.gzorm
memcached-1.4.22.tar.gzip
memcached-1.2.8-repcached-2.2.1.tar.gzget
2.1安装libevent (memcached依赖libevent)同步
tar –zxvf libevent-2.0.22-stable.tar.gz
it
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