`
zhaohaolin
  • 浏览: 1003301 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在CentOS 5.6上编译安装Memcached

 
阅读更多

首先上一个memcached原理图,让不了解memcached的兄弟普及一下:

点击放大图片

基本原理作如下简单描述:

① 客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端;同时也将取出的数据保存到memcached中。

② 第二次访问时,因为数据已经缓存,不不用去数据库查询了,直接从memcached取。

那么memcached的快速和高效率是如何体现出来的呢?我们都清楚,RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上。而 memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。那么就不用我再做说明了,内存的读写速度要比磁盘的读写速度快得 多,前者是后者的10的6次方倍。

memcached是基于libevent的事件处理。libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介 绍,可以参考Dan Kegel的The C10K Problem。欲了解更更多关于libevent:http://monkey.org/~provos/libevent/

在CentOS 5.6上编译安装Memcached

1、 由于memcached是基于libevent的,因此需要安装libevent,libevent-devel


  1. # yum install libevent libevent-devel -y 

2、 下载并解压memcached-1.4.5

memcached官方网站是:http://memcached.org/


  1. # cd /root 
  2. # wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz 
  3. # tar -xvzf  memcached-1.4.5.tar.gz 

3、 编译安装memcached-1.4.5


  1. # cd memcached-1.4.5 
  2. # ./configure --prefix =/etc/memcached 
  3. # make 
  4. # make install 

4、 配置环境变量

进入用户宿主目录,编辑.bash_profile,为系统环境变量LD_LIBRARY_PATH增加新的目录,需要增加的内容如下:

# vi .bash_profile


  1. MEMCACHED_HOME =/etc/memcached 
  2. export LD_LIBRARY_PATH =$LD_LIBRARY_PATH:$MEMCACHED_HOME/lib 

刷新用户环境变量:# source .bash_profile

5、 编写memcached服务启停脚本

# cd /etc/init.d

vi memcached,脚本内容如下:


  1. #!/bin/sh  
  2. #  
  3. # Startup script for the server of memcached  
  4. #  
  5. # processname: memcached  
  6. # pidfile: /etc/memcached/memcached.pid  
  7. # logfile: /etc/memcached/memcached_log.txt  
  8. # memcached_home: /etc/memcached  
  9. # chkconfig: 35 21 79  
  10. # description: Start and stop memcached Service  
  11.  
  12. # Source function library  
  13. . /etc/rc.d/init.d/functions 
  14.  
  15. RETVAL=0 
  16.  
  17. prog="memcached"  
  18. basedir=/etc/memcached 
  19. cmd=${basedir}/bin/memcached 
  20. pidfile="$basedir/${prog}.pid"  
  21. #logfile="$basedir/memcached_log.txt"  
  22.  
  23. # 设置memcached启动参数  
  24. ipaddr="192.168.1.201"     # 绑定侦听的IP地址 
  25. port="11211"                     # 服务端口 
  26. username="root"                  # 运行程序的用户身份 
  27. max_memory=64                   # default: 64M | 最大使用内存 
  28. max_simul_conn=1024             # default: 1024 | 最大同时连接数 
  29. #maxcon=51200  
  30. #growth_factor=1.3              # default: 1.25 | 块大小增长因子  
  31. #thread_num=6                   # default: 4  
  32. #verbose="-vv"                  # 查看详细启动信息  
  33. #bind_protocol=binary           # ascii, binary, or auto (default)  
  34.  
  35. start() { 
  36.     echo -n $"Starting service: $prog"  
  37.     $cmd -d -m $max_memory -u $username -l $ipaddr -p $port -c $max_simul_conn -P $pidfile 
  38.     RETVAL=$? 
  39.     echo 
  40.     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog 
  41.  
  42. stop() { 
  43.     echo -n $"Stopping service: $prog  "  
  44.     run_user=`whoami` 
  45.         pidlist=`ps -ef | grep $run_user | grep memcached | grep -v grep | awk '{print($2)}'`  
  46.         for pid in $pidlist 
  47.         do 
  48. #           echo "pid=$pid"  
  49.             kill -9 $pid 
  50.             if [ $? -ne 0 ]; then 
  51.                 return 1 
  52.             fi 
  53.         done 
  54.     RETVAL=$? 
  55.     echo 
  56.     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog 
  57.  
  58. # See how we were called.  
  59. case "$1"  in 
  60.     start) 
  61.         start 
  62.         ;; 
  63.     stop) 
  64.         stop 
  65.         ;; 
  66.     #reload)  
  67.     #    reload  
  68.     #    ;;  
  69.     restart) 
  70.         stop 
  71.         start 
  72.         ;; 
  73.     #condrestart)  
  74.     #    if [ -f /var/lock/subsys/$prog ]; then  
  75.     #        stop  
  76.     #        start  
  77.     #    fi  
  78.     #    ;;  
  79.     status) 
  80.         status memcached 
  81.         ;; 
  82.     *) 
  83.         echo "Usage: $0 {start|stop|restart|status}"  
  84.         exit 1 
  85. esac 
  86.  
  87. exit $RETVAL 

设置脚本可被执行:# chmod +x memcached

6、 设置memcached随系统启动


  1. # chkconfig --add memcached 
  2. # chkconfig --level 35 memcached on 

启动memcached


  1. # service memcached start  
  2. //启动的时候实际上是调用了下面的这个命令,以守护进程的方式来启动memcached  
  3. /etc/memcached/bin/memcached -d -m 64 -u root -l 192.168.1.201  
  4. \-p 11211 -c 1024 -P /etc/memcached/memcached.pid 

查看memcached是否启动:

# ps -ef | grep memcached

memcached命令参数解释

参数 参数解释及说明
-p <num> 监听的端口
-l <ip_addr> 连接的IP地址,,默认是本机。-l选项可以不使用,此时表示在所有网络接口地址上监听。建议是-l <ip_addr>指定一个内部网络IP地址,以避免成为外部网络攻击的对象
-d start 启动memcached 服务
-d restart 重起memcached 服务
-d stop|shutdown 关闭正在运行的memcached 服务
-d install 安装memcached 服务
-d uninstall 卸载memcached 服务
-u <username> 以<username>的身份运行 (仅在以root运行的时候有效)
-m <num> 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c <num> 最大同时连接数,默认是1024
-f <factor> 块大小增长因子,默认是1.25
-n <bytes> 最小分配空间,key+value+flags默认是48
-h 显示帮助
分享到:
评论

相关推荐

    Centos5.6中Redmine1.2.1安装过程

    需要注意的是,在安装过程中可能会遇到一些警告或错误提示,例如在安装 `mysql-2.8.1.gem` 时可能出现错误,但这通常不会影响后续步骤。 **5. 配置 ActiveRecord MySQL Adapter** 安装完成后,需要对 ActiveRecord...

    centos5.6安装oracle10g

    这样可以确保在安装过程中Oracle能够正确识别和连接到本地主机。 整个安装流程需要仔细操作,每一个步骤都是Oracle成功部署的关键。确保遵循上述步骤,可以降低安装过程中遇到的问题,帮助你在CentOS 5.6上顺利安装...

    CentOS 5.6编译安装Apache2.4.1+MySQL5.5.21+PHP5.3.10

    CentOS 5.6编译安装Apache2.4.1+MySQL5.5.21+PHP5.3.10

    centos5.6图解安装

    ### CentOS 5.6 图解安装指南 #### 一、启动与配置虚拟机环境 ...通过上述步骤,我们可以成功地在虚拟机环境中安装并配置好CentOS 5.6系统。此文档提供了详细的图解安装指南,对于初学者来说是非常有用的参考材料。

    CentOS5.6安装手册

    - 在安装过程中,确保你的网络连接正常,因为安装过程中可能会需要更新软件包或下载额外的驱动。 - 分配给虚拟机的内存和硬盘空间应根据你的实际需求来设定,通常至少需要1GB的内存和20GB以上的硬盘空间。 - 为了...

    centos5.6安装oracle11g图解安装过程

    在开始安装 Oracle 11g 之前,需要确保 CentOS 5.6 系统中已经安装了一系列必要的软件包,这些软件包对于 Oracle 数据库的成功安装至关重要。以下是一些重要的 RPM 包: 1. **检查 RPM 包是否安装完毕**: 使用 `...

    CentOS 5.6平台下安装Nagios监控平台

    在CentOS 5.6平台上安装Nagios,首先要确保系统是最新的。你可以通过执行`yum update`命令来更新系统到最新版本。接着,需要安装三个关键组件:Apache、PHP和MySQL。 1. 安装Apache:Apache是NagiosWeb界面的web...

    CentOS_5.6_安装手册_V1

    这份手册不仅阐述了CentOS与Red Hat Enterprise Linux (RHEL)之间的密切关系,还提供了全面的CentOS 5.6安装步骤,旨在帮助用户顺利地在各种硬件平台上部署和配置这个开源操作系统。 首先,让我们了解一下CentOS。...

    centos5.6 DNS配置

    自己看文档,亲自操作后的整理的关于centos5.6 dns的基本配置步骤,希望帮助迷茫的你

    CentOS5.6环境下设置yum代理

    CentOS5.6环境下设置yum代理

    Centos5.6安装、java环境配置、驱动安装

    在本文中,我们将详细探讨如何在CentOS 5.6上进行系统安装、配置Java开发环境以及安装特定硬件驱动,特别是针对联想G460笔记本电脑的802.11无线网卡驱动和显卡驱动。以下是每一步的详细说明: 1. **CentOS 5.6安装*...

    centos 5.6安装图解

    centos 5.6安装图解,CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度...

    centos5.6安装oracle11g

    centos5.6环境中安装oracle11g的简单步骤。 个人根据Oracle联机帮助文档 安装过程中的记录。

    CentOS5.6安装手册V1

    CentOS5.6安装手册 CentOS (Commnity Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。

    CentOS6.5一键安装Mysql5.6

    本文将详细介绍如何在CentOS 6.5上进行MySQL 5.6的一键安装过程,包括必要的环境准备、安装步骤、配置优化以及安全设置。 一、环境准备 在开始安装之前,确保你的CentOS 6.5系统已经更新到最新,运行以下命令进行...

Global site tag (gtag.js) - Google Analytics