`
H小阿飞
  • 浏览: 274947 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

Linux下安装搭建Memcached集群环境

阅读更多

废话: 可跳过

由于项目需要,需要搭建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版本

 

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

 

magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/

magent is a simple but useful proxy program for memcached servers.

It features:
keeps connections to memcached servers
supports following memcached commands
get gets
delete
incr decr
add set replace prepend append
cas
event-driven by using libevent library
supports ketama algorithm
backup servers farm
unix domain socket
Usage:
  -h this message
  -u uid
  -g gid
  -p port, default is 11211. (0 to disable tcp support)
  -s ip:port, set memcached server ip and port
  -b ip:port, set backup memcached server ip and port
  -l ip, local bind ip address, default is 0.0.0.0
  -n number, set max connections, default is 4096
  -D do not go to background
  -k use ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, max keep alive connections for one memcached server, default is 20
  -v verbose
Changelog:
2010/4/14: memcached agent 0.6

add connection keepalive handler
bug fix, more robust, more debug messages
Examples:
  magent -s 10.1.2.1 -s 10.1.2.2:11211 -b 10.1.2.3:14000 -v
Notes:
current magent's speed is about 80% of memcached's. finding way to speed it up(not good)
adding backup server does no harm to magent's performance. (good)
magent's cpu usage is less than memcached's and has very little memory usage. (good)

3
4
分享到:
评论
5 楼 zhukewen_java 2014-09-01  
hnraysir 写道
zhukewen_java 写道
就是题目有点太广了,没有指定是哪种linux,只能看出是采用rpm包管理的发行版本。

人家里不是写了CentOS release 6.3么?

后来加上的
4 楼 qq597440166 2014-08-10  
我在cantos6.5上配置成功,太感谢了 
3 楼 hnraysir 2014-03-03  
0.6的telnet第2次set key也是卡在那里了。同事说通过代码访问没问题,还不知如果通过php使用magent?不知能否给点思路?谢谢
2 楼 hnraysir 2014-03-03  
zhukewen_java 写道
就是题目有点太广了,没有指定是哪种linux,只能看出是采用rpm包管理的发行版本。

人家里不是写了CentOS release 6.3么?
1 楼 zhukewen_java 2012-12-29  
就是题目有点太广了,没有指定是哪种linux,只能看出是采用rpm包管理的发行版本。

相关推荐

    memcached集群linux搭建

    memcached集群搭建,包含淘宝月光宝盒架构

    memcache集群搭建.txt

    这个是Linux系统memcached集群的搭建方法,需要用到magnet包,libevent和memcached

    Linux下Nginx+Memcached+Tomcat负载均衡集群服务搭建所需jar包

    Linux下Nginx+Memcached+Tomcat负载均衡集群服务搭建所需jar包

    nginx+apache+mysql+php+memcached+squid搭建集群web环境(一)

    【吐血推荐】nginx+apache+mysql+php+memcached+squid搭建集群web环境(一) 此乃本人N次服务器真机实验所得,所以分数高点,望体谅.. 按教程来做,你也可以搭建linux服务器... 注:此乃分卷一,

    nginx+apache+mysql+php+memcached+squid搭建集群web环境(二)

    【吐血推荐】nginx+apache+mysql+php+memcached+squid搭建集群web环境(二) 此乃本人N次服务器真机实验所得,所以分数高点,望体谅.. 按教程来做,你也可以搭建linux服务器... 注:此乃分卷二,

    跟老男孩学linux运维:Web集群实战

    简单地介绍了Linux的历史沿革、Linux的企业级选型、Linux环境的搭建、Linux的企业级系统安装、Linux系统的基础优化,以及远程连接Linux及客户端SSH的设置等,最后比较深入地讲解了HTTP协议和www服务相关知识,为读者...

    《跟老男孩学Linux运维 Web集群实战》高清完整带详细书签

    简单地介绍了Linux的历史沿革、Linux的企业级选型、学习环境的搭建、Linux的企业级系统安装、Linux系统的基础优化,以及远程连接Linux及客户端SSH的设置等,最后比较深入地讲解了HTTP协议和www服务相关知识,为读者...

    分布式集群、PB级别网站性能优化

    Piranha安装快速搭建LVS负载均衡集群 LVS负载均衡DR模式安装调试介绍 LVS负载均衡深入进阶实战 LVS调度策略及负载均衡原理深入 LVS深入及NAT集群调试 Nginx反向代理实战 Nginx实战进阶 Nginx动静分离URL转发实战 NFS...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.6 Linux下常见的性能分析工具 10.6.1 vmstat命令 10.6.2 sar命令 10.6.3 iostat命令 10.6.4 free命令 10.6.5 uptime命令 10.6.6 netstat命令 10.6.7 top命令 10.7 基于Web应用的性能分析及优化...

    跟老男孩学Linux运维:集群实战

    简单地介绍了Linux的历史沿革、Linux的企业级选型、学习环境的搭建、Linux的企业级系统安装、Linux系统的基础优化,以及远程连接Linux及客户端SSH的设置等,最后比较深入地讲解了HTTP协议和www服务相关知识,为读者...

    跟老男孩学Linux运维 Web集群实战.pdf

    简单地介绍了Linux的历史沿革、Linux的企业级选型、学习环境的搭建、Linux的企业级系统安装、Linux系统的基础优化,以及远程连接Linux及客户端SSH的设置等,最后比较深入地讲解了HTTP协议和www服务相关知识,为读者...

    Linux下Nginx搭建

    1.Ngnix 下载 ...黄海下载的是: ...由于使用集群,所以tomcat 间的session 同步就显得尤为重要。 本例中使用memcached-session-manager 的插件进行session 的同步管理。 http://code.google.com/p/m

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.zip

    《决战Nginx系统卷:高性能Web服务器详解与运维》 适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、Linux服务器下动态语言开发人员、Nginx服务器管理员、培训中心师生、运维...

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.z01

    《决战Nginx系统卷:高性能Web服务器详解与运维》 适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、Linux服务器下动态语言开发人员、Nginx服务器管理员、培训中心师生、运维...

    服务器运维工程师的主要职责.docx

    任职资格: 1、 1-2年Windows、Linux服务器安装、管理及维护管理经验; 2、熟悉VMware虚拟化软件,熟悉HP服务器; 3、熟悉使用Linux操作系统及Linux操作命令; 4、熟悉SQL server,MySQL至少1种数据库系统的基本部署、...

    网络架构师148讲视频课程

    │ 第09节:搭建基础的开发环境.avi │ 第10节:Spring+Mybatis实现DAO.avi │ 第11节:Mybatis的分页实现.avi │ 第12节:Service的实现以及模块化.avi │ 第13节:Spring MVC实现Web层开发.avi │ 第14节:新增和...

    高性能高并发服务器架构大全

     开源平台的高并发集群思考 26  大型、高负载网站架构和应用初探 时间:30-45分钟 27  说说大型高并发高负载网站的系统架构 28  mixi技术架构 51 mixi.jp:使用开源软件搭建的可扩展SNS网站 51 总概...

Global site tag (gtag.js) - Google Analytics