您的位置:首页 > 数据库 > Memcache

linux下安装搭建Memcached集群

2017-06-07 17:47 363 查看


Linux下安装搭建Memcached集群环境

博客分类: 

MemcachedMemcached、libevent、magent 

废话: 可跳过

由于项目需要,需要搭建memcached集群环境,遂开始调研相关技术

网络上有不少linux下安装memcached的教程,对于我这个linux零基础的来说,想立马在linux下安装memcached,似乎还是有点阻碍。参照了不少网络教程,安装过程中总是会出错,特别是在安装magent的时候,总是会报错,而相关教程中,很少提及如何解决报错问题,经过两天的折腾,终于摸索并解决了所有的报错问题,遂整理了一套“傻瓜”式的安装过程,避免安装过程中的报错

----------------------------------------------------------------------------------------------------------------------------------------

什么是Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

Memcached基于一个存储键/值对的HashMap,它并不提供冗余(复制其HashMap条目),当某个服务器停止运行或崩溃了,所有存放在服务器上的键/值对都将丢失。但目前Memcached的客户端和代理程序可以提供多服务器的并联方式,可以提供一定的处理能力。
Memcached与其他分布式缓存的区别

Memcached与其它常用的分布式缓存(例如EhCache、OSCache、JBoss Cache)最主要的区别在于Memcached采用集中式缓存方式(即一台或多台缓存服务器为所有应用系统提供缓存能力),自身不提供集群能力,不提供缓存复制功能;而其他分布式缓存系统采用分布式缓存方式,各个应用系统内部提供数据缓存的能力,多个缓存间采用组播或点对点的方式进行缓存同步。

在性能上来看,Memcached比其它分布式缓存系统低一半以上(未考虑大量数据在其它缓存系统进行复制的影响);但从管理方面来看,Memcached的缓存采用集中管理的模式,应用系统可以水平扩展,而其它分布式缓存在水平扩展的同时,必须同时调整缓存复制策略,一旦应用服务器节点大量扩展,对于缓存服务器间的数据复制将成几何数增加。

----------------------------------------------------------------------------------------------------------------------------------------

环境:CentOS release 6.3

 

搭建memcached集群环境,先要安装gcc 
# yum -y install gcc 

在root目录下创建soft_hhf目录
# cd /root/

# mkdir soft_hhf 

1.编译安装libevent
# cd /root/soft_hhf/

# wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 
# tar -xvf libevent-2.0.21-stable.tar.gz

# cd libevent-2.0.21-stable

# ./configure --prefix=/usr

# make&&make install

# cd ../ 

2.编译安装Memcached
# cd /root/soft_hhf/

# wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
# tar -xvf memcached-1.4.15.tar.gz

# cd memcached-1.4.15/

# ./configure --with-libevent=/usr

# make&&make install

# cd ../

安装完成后会把memcached放到 /usr/local/bin/memcached

 

3.编译安装magent-0.6到/usr/local/下(推荐安装magent-0.5稳定版本,下面有说明  日期:2013.01.04)
# cd /usr/local

# mkdir magent

# cd magent/

# wget http://memagent.googlecode.com/files/magent-0.6.tar.gz
# tar zxvf magent-0.6.tar.gz

# vi ketama.h 

在开头加入

#ifndef SSIZE_MAX

# define SSIZE_MAX      32767

#endif

# vim Makefile (magent-0.6版本)

LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a 改为 LIBS = -lrt /usr/lib64/libevent.a /usr/lib64/libm.a 

CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 改为 CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)

 

# vim Makefile (magent-0.5版本)

CFLAGS = -Wall -O2 -g 改为 CFLAGS = -lrt -Wall -O2 -g

# 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 ../

 

测试memcached是否安装成功:

1.启动一个memcached进程

# memcached -m 1 -u root -d -l 192.168.1.151 -p 11211

2.查看是否启动成功了

# ps aux|grep memcached

显示两行 root,则说明安装成功了,如下所示:

root     11952  0.0  0.0 331112  1104 ?        Ssl  15:09   0:00 memcached -m 1 -u root -d -l 192.168.1.151 -p 11211

root     11959  0.0  0.0 103240   796 pts/1    S+   15:09   0:00 grep memcached

 

测试magent是否安装成功:

1.启动一个magent进程

# ./magent -u root -n 51200 -l 192.168.1.151 -p 12000 -s 192.168.1.151:11211

2.查看是否启动成功了

# ps aux|grep magent

显示两行 root,则说明安装成功了,如下所示:

root     11720  0.0  0.0  10972   588 ?        Ss   13:51   0:00 magent -u root -n 51200 -l 192.168.1.151 -p 12000 -s 192.168.1.151:11211 -s 192.168.1.151:11212 -b 192.168.1.151:11213

root     11974  0.0  0.0 103240   792 pts/1    R+   15:12   0:00 grep magent

注: 之前的安装过程中,我总是只显示一行:root     11974  0.0  0.0 103240   792 pts/1    R+   15:12   0:00 grep magent,但是执行magent命令又不报错,可是查看magent进程,老是没有,老是启动不起来,其实还是magent没有安装成功,所以这边必须要看到两行,才能说明启动成功。

 

好了,如果你顺利安装成功,那就恭喜你了,可以继续深入学习memached的相关知识了

 

对于安装过程中的报错问题,我会在下一篇文章中整理出来,供自己以后查阅

 

接着就是进行测试学习了,首先确保telnet服务安装了

查看telnet是否安装  

查看telnet客户端是否安装:
# rpm -q telnet 

若无安装,则执行:
# yum -y install telnet 

查看telnet服务端是否安装:
# rpm -q telnet-server 

若无安装,则执行:
# yum -y install telnet-server

 

注:刚测试发现magent-0.6虽是最新版本,但是还存在问题,不稳定,第二次访问magent始终会堵塞在那里,只能set一个值。测试了magent-0.5是稳定版本,没有出现只能set一个值的现象,遂推荐安装magent-0.5版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: