https://i-blog.csdnimg.cn/blog_migrate/5b26bcb151616e78e132879fc2b48312.png
猫爪实习,带我的师兄让我寻找Memcached主从热备份的解决方案。一番折腾,blog找了一大堆,终于磕磕绊绊搞定了。很多blog写的不全,magent安装出错而无法进行Memcached代理,所以想自己整理一番,以备后用。
操作系统:Ubuntu 64位
所需软件:libevent-1.4.9-stable.tar.gz、memcached-1.2.8.tar.gz、memcached-1.2.8-repcached-2.2.tar.gz、magent-0.5.tar.gz
安装过程:
1、提升至root权限,在tmp目录下新建memcached文件夹,将上述4个压缩包复制到文件夹下
- cd /tmp
- mkdir memcached
2、安装libevent
- tar zxvf libevent-1.4.9-stable.tar.gz
- cd libevent-1.4.9-stable
- ./configure --prefix=/usr
- make
- make install
- cd ..
3、安装memcached
- tar zxvf memcached-1.2.8.tar.gz
- cd memcached-1.2.8
- ./configure –with-libevent=/usr
- make
- make install
- cd ..
4、安装memcached-repcached
- tar zxvf memcached-1.2.8-repcached-2.2.tar.gz
- cd memcached-1.2.8-repcached-2.2
- ./configure –enable-replication
- make
- make install
- cd ..
5、安装magent
- mkdir magent
- cp magent-0.5.tar.gz magent
- cd magent
- tar zxvf magent-0.5.tar.gz
- vi ketama.h
- 在开头加入
- #ifndef SSIZE_MAX
- # define SSIZE_MAX 32767
- #endif
- vim Makefile
- CFLAGS = -Wall -O2 -g 改为 CFLAGS = -lrt -Wall -O2 -g
- mkdir /usr/lib64
- cp /usr/lib/libevent.a /usr/lib64
- ln -s /usr/lib64/libm.so /usr/lib64/libm.a
- /sbin/ldconfig
- sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
- make
- cp magent /usr/bin/magent
- cd ..
测试流程:
1、开启代理,代理端口是12000,设置127.0.0.1:11211为主服务器,127.0.0.1:11212为从服务器
- magent -u root -p 12000 -s 127.0.0.1:11211 -b 127.0.0.1:11212
2、启动两个memcached进程,在11111端口进行同步
- ./memcached -u root -d -l 127.0.0.1 -p 11211 -x 127.0.0.1 -X 11111
- ./memcached -u root -d -l 127.0.0.1 -p 11212 -x 127.0.0.1 -X 11111
3、从代理服务器写入数据,然后查看两个memcached进程内是否存在数据



4、关掉主服务器,从代理和从服务器查看是否能够查询到结果




5、重新启动在11211端口监听的memcached进程,查询其上是否存在数据



至此,完毕。