repcached实现memcached主从复制

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




    









你可能感兴趣的:(memcached主从复制)