利用 Repcached 实现 memcached 集群部署

一、Repcached实现原理

在 master上可以通过 -X指定 replication port,在 slave上通过 -x/-X找到 master并 connect上去,事实上,如果同时指定了 -x/-X, repcached一定会尝试连接,但如果连接失败,它就会用 -X参数来自己 listen(成为master);如果 master坏掉, slave侦测到连接断了,它会自动 listen而成为 master;而如果 slave坏掉,master也会侦测到连接断,它就会重新 listen等待新的 slave加入。
从这方案的技术实现来看,其实它是一个单 master单 slave的方案,但它的 master/slave都是可读写的,而且可以相互同步,所以从功能上看,也可以认为它是双机 master-master方案。

拓扑:
在这里插入图片描述

二、部署Repcached

yum install libevent libevent-devel
wget https://sourceforge.net/projects/repcached/files/repcached/2.2.1- 1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
tar xvf memcached-1.2.8-repcached-2.2.1.tar.gz
cd memcached-1.2.8-repcached-2.2.1
./configure --prefix=/usr/local/repcached -- enable-replication
make #报错如下

在这里插入图片描述
解决方法:

vim memcached.c 
56 #ifndef IOV_MAX 
57 #if defined(__FreeBSD__) || defined(__APPLE__) 
58 # define IOV_MAX 1024 
59 #endif 
60 #endif 

改为如下内容: 
55 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */ 
56 #ifndef IOV_MAX 
57 # define IOV_MAX 1024 
58 #endif

再次编译安装:

 make && make install

验证是否可用

/usr/local/repcached/bin/memcached -h

三、启动memcache

server1

/usr/local/repcached/bin/memcached -d -m 2048 -p 11211 -u root -c 2048 -x 172.18.200.106 -X 16000

server2

/usr/local/repcached/bin/memcached -d -m 2048 -p 11211 -u root -c 2048 -x 172.18.200.105 -X 16000

四、memcache的使用

telnet 172.18.200.106 11211 
Trying 172.18.200.106... 
Connected to 172.18.200.106. 
Escape character is '^]'. 
set name 0 0 4    #key 的名为name,0 0表示永不超时
jack    #value为jack
STORED    #符合长度后自动保存 
get name 
VALUE name 0 4 
jack 
END 
quit 
Connection closed by foreign host.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值