搭建memcached分布式集群
安装Memcached
安装libevent库
yum install libevent libevent-devel
安装 Memcached
yum install memcached
Memcached 运行
使用一下命令来启动Memcached服务
/usr/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
查看到Memcached服务已经启动
ps -ef|grep memcached
通过telnet访问并对Memcached进行操作
安装Magent
下载Magent
链接:https://pan.baidu.com/s/1CoEc8pdhX6pvT9bRkpETjQ
提取码:0yfh
安装Magent
cd /usr/local
mkdir magent
将下载好的压缩包放到这个文件夹下
tar -zxvf magent-0.6.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
在ketama.h开头添加
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
然后安装
make
出错了,先解决libm.a的问题
ln -s /usr/lib64/libm.so /usr/lib64/libm.a
然后解决libevent.a的问题
这个可能是yum安装的问题,所以我建议通过编译的方式来安装
链接:https://pan.baidu.com/s/1h5YkFxZT7-sKz3n-fkSpDg
提取码:1o56
将该文件放到/tmp目录下
cd /tmp
tar zxvf libevent-2.0.21-stable.tar.gz
yum install gcc
cd libevent-2.0.21-stable
./configure -prefix=/usr/local
make
make install
此时已经成功安装好了libevent
回到magent目录
cd /usr/local/magent/
vi Makefile
找到 LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a
按照下图中修改
保存后继续安装
make
复制 make 生成的/usr/local/下名为magent的文件到/usr/bin/
cp magent /usr/bin/magent
检查是否安装成功
./magent -h
出现如下界面则安装成功
代理Memcache
在三个虚拟机上开启Memcache,在主节点的12000端口开启magent代理程序
本机和192.168.31.130为主Memcache,192.168.31.131为备份Memcache
magent -u root -n 51200 -l 127.0.0.1 -p 12000 -s 127.0.0.1:11211 -s 192.168.31.130:11211
客户端连接12000端口,连接magent,进行memcached操作,相应的值会分布写到两个虚拟机的Memcached上。
首先在本机使用magent写入五条记录
在本机的节点只读取到了key2,key4
在192.168.31.130读取到了key1,key3,key5
五条数据是分布在两个节点的Memcached上的,测试成功