【memcached】repcached工具

使用repcached可以实现memcached的复制功能:

它是一个单master但slave的方案。但是它的master/slave都是可读写的,而且可以相互同步。

如果master down掉,slave侦测到连接断了,它会自动listen而成为master。如果slave down掉,master也会侦测到连接断了,它会重新listen等待新的slave加入。


安装

Ubuntu下安装

下载repcached的源代码压缩包,解压缩:

<span style="font-family: Arial, Helvetica, sans-serif;">tar zxvf memcached-1.2.8-repcached-2.2.1.tar.gz</span>


进入解压缩的目录:

cd memcached-1.2.8-repcached-2.2.1

执行configure,关于configure的参数,第一个选项是使复制有效的选项,第二个选项指明了安装命令的名字是repcached,而不是memcached。这样设置可以在保留memcached的基础上安装repcached。

./configure --enable-replication --program-transform-name=s/memcached/repcached/

执行make命令,会发生错误;

进入repcached的解压缩目录,打开文件memcached.c,找到如下的定义:

/* FreeBSD 4.x doesn't have IOV_MAX exposed. */
#ifndef IOV_MAX
#if defined(__FreeBSD__) || defined(__APPLE__)
# define IOV_MAX 1024
#endif
#endif

在Ubuntu下,去掉 #if 块:

/* FreeBSD 4.x doesn't have IOV_MAX exposed. */
#ifndef IOV_MAX
# define IOV_MAX 1024
#endif

执行make:
make


执行 make install:

sudo make install

安装完成。


测试

首先使用11211号端口启动作为主服务器的repcached:

parallels@ubuntu:~$ repcached -p 11211 -v
replication: listen
replication:accept

(到slave启动后,输出 replication:accept)


然后,使用相异的端口号来启动slave服务器的repcached。启动的时候通过-x参数来指定对应的master服务器名或者IP地址。 -x参数也可以用来指定复制的master服务器端口,默认的端口号是11211:
parallels@ubuntu:~$ repcached -p 11212 -x localhost -v
replication: connect (peer=127.0.0.1:11212)
replication: marugoto copying
replication: start


首先通过telnet连接11211端口的master repcached,尝试保存数据:
parallels@ubuntu:~$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set hello 0 0 5
world
STORED
get hello
VALUE hello 0 5
world
END


然后通过telnet连接11212端口的slave repcached,确认刚才通过11211端口的repcached保存的数据是否已经被复制了:
parallels@ubuntu:~$ telnet localhost 11212
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get hello
VALUE hello 0 5
world
END

也可以对11212端口的slave repcached进行写处理,这些数据也可以从11211端口的master repcached读取出来。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值