`
H小阿飞
  • 浏览: 278544 次
  • 性别: 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搭建

    在Linux环境下搭建Memcached集群是优化服务性能的关键步骤,尤其是对于那些处理大量数据和高并发请求的Web应用程序。本文将详细介绍如何在Linux上构建一个基于淘宝月光宝盒(Taobao MoonBox)架构的Memcached集群。 ...

    Memcached集群搭建

    **Memcached集群搭建** Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高Web应用性能。本文将详细介绍如何在多个服务器上搭建一个Memcached集群,以实现数据的高可用性和负载均衡。 ### ...

    搭建linux+php+memcached架构的网站.zip

    在Linux环境下搭建网站服务器,可以确保系统的高效运行和良好的可定制性。 PHP是一种广泛使用的开源脚本语言,特别适合于Web开发,它可以嵌入到HTML中,为动态网站提供支持。在Linux上安装PHP通常涉及到编译源代码...

    memcache集群搭建.txt

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

    memcached 缓存 linux windows 安装 集群

    ### Memcached缓存系统在Linux与Windows环境下的安装与集群配置 #### 一、概述 Memcached是一款高性能的分布式内存对象缓存系统,用于通过缓存数据库查询结果和其他开销较大的计算结果来减少数据库负载并加速动态...

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

    总结,构建Linux下Nginx+Memcached+Tomcat的负载均衡集群服务,需要深入了解每个组件的工作原理,正确配置和整合这些组件,以实现高效、稳定的Web服务。同时,不断优化和调整集群策略,以适应业务的增长和变化。

    Linux下通过Apache搭建Tomcat集群

    在Linux下,Apache和Tomcat组合可以创建一个高效且可扩展的Java应用服务器集群。 1. **安装Apache和Tomcat** - 安装Apache HTTP服务器,通常使用`apt-get`或`yum`命令,具体取决于你的Linux发行版。 - 安装多个...

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

    【搭建集群Web环境详解】 在当前的Web开发领域,LAMP(Linux + Apache + MySQL + PHP)架构是最常见的选择,但对于处理大量用户访问的场景,单一服务器可能无法满足需求。因此,构建一个高效的、可靠的、稳定的集群...

    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服务器... 注:此乃分卷二,

    网上收集最新的Memcached学习资料

    随着业务发展,单台Memcached可能无法满足需求,这时可以搭建Memcached集群。通过增加更多的服务器节点,提高系统整体的存储能力和处理能力。 总结,Memcached是一个高效、轻量级的缓存解决方案,适用于需要快速...

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

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

    Linux下Nginx搭建

    在Linux环境下搭建Nginx服务器是一项常见的任务,尤其对于那些希望构建高性能、高并发的Web服务的用户。Nginx以其轻量级、反向代理和负载均衡等特性深受青睐。下面将详细介绍如何在Linux系统中下载并安装Nginx,以及...

    TreeNM在linux下的部署(用记访问redis和memcached)

    在Linux环境下,TreeNM的搭建涉及到多个步骤,例如系统环境的搭建、软件的安装、配置和启动。根据描述,TreeNM的部署包括了对Redis和Memcached的使用,这表明在搭建TreeNM的过程中,可能会用到Redis和Memcached来...

    tomcat 集群搭建

    本文档将详细讲解如何在Windows和Linux系统上搭建Tomcat集群。 ### 一、Windows系统Tomcat集群搭建 1. **安装Tomcat**:首先,你需要在多台Windows服务器上分别安装相同版本的Tomcat。确保所有服务器上的Tomcat...

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    ### 安装环境的具体配置 文档提供了具体的版本信息和安装配置步骤: - 系统环境:CentOS 6.5、Linux内核版本2.6.32。 - JDK版本:1.6.0_29。 - Tomcat版本:7.0.39。 - Memcached版本:libevent 2.0.21、memcached ...

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

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

    Linux安装部署weblogic

    本章节详细介绍了统一权限平台所依赖的软硬件环境的安装与配置,包括操作系统(RedHat Enterprise Linux Server 5/6, 简称 RHEL5/6)、Java Development Kit (JDK)、Oracle WebLogic Server、Apache ActiveMQ、...

    搭建nginx+apache+mysql+php+memcached+squid服务器集群.zip_nginx正向代理

    搭建一个高效的服务器集群是IT行业中常见的任务,特别是对于高流量的Web应用来说,这能确保稳定性和可扩展性。在本场景中,我们讨论的是基于Nginx、Apache、MySQL、PHP、Memcached和Squid构建的服务器集群。下面将...

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

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

Global site tag (gtag.js) - Google Analytics