注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风之泪

风过雨过,花开花落。。。

 
 
 

日志

 
 

centos 6.3 server 安装memcached-1.4.14  

2012-08-01 11:22:43|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
基本原理:
centos 6.3 server 安装memcached-1.4.14 - 风 - 风之泪

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

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

RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上;而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。内存的读写速度要比磁盘的读写速度快得多,前者是后者的106次方倍。

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

 
 
编译安装Memcached
 

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

       # yum install libevent libevent-devel -y 
2、下载并解压memcached-1.4.6.tar.gz

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

        # tar -xvzf  memcached-1.4.6.tar.gz
3、编译安装memcached-1.4.6
         # cd memcached-1.4.6 
 # ./configure --prefix=/etc/memcached 
         # make 
         # make install 
4、配置环境变量
进入用户宿主目录,编辑.bash_profile,为系统环境变量LD_LIBRARY_PATH增加新的目录,需要增加的内容如下:
# vi .bash_profile
MEMCACHED_HOME=/etc/memcached 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MEMCACHED_HOME/lib 

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

5编写memcached服务启停脚本
# cd /etc/init.d
vi memcached,脚本内容如下:

#!/bin/sh 
# Startup script for the server of memcached 
# processname: memcached 
# pidfile: /etc/memcached/memcached.pid 
# logfile: /etc/memcached/memcached_log.txt 
# memcached_home: /etc/memcached 
# chkconfig: 35 21 79 
# description: Start and stop memcached Service 
 
# Source function library 
. /etc/rc.d/init.d/functions 
 
RETVAL=0 
 
prog="memcached" 
basedir=/etc/memcached 
cmd=${basedir}/bin/memcached 
pidfile="$basedir/${prog}.pid" 
#logfile="$basedir/memcached_log.txt" 
 
ipaddr="192.168.1.200"           绑定侦听的IP地址 
port="11211"                       # 服务端口 
username="root"                 运行程序的用户身份
max_memory=64                   # default: 64M | 最大使用内存
max_simul_conn=1024             # default: 1024 | 最大同时连接数
#maxcon=51200                  
#growth_factor=1.3              # default: 1.25 | 块大小增长因子
#thread_num=6                   # default: 4
#verbose="-vv"                   查看详细启动信息
#bind_protocol=binary           # ascii, binary, or auto (default)
 
start() { 
    echo -n $"Starting service: $prog" 
    $cmd -d -m $max_memory -u $username -l $ipaddr -p $port -c $max_simul_conn -P $pidfile 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog 
 
stop() { 
    echo -n $"Stopping service: $prog  " 
    run_user=`whoami` 
        pidlist=`ps -ef | grep $run_user | grep memcached | grep -v grep | awk '{print($2)}'` 
        for pid in $pidlist 
        do 
#           echo "pid=$pid" 
            kill -9 $pid 
            if [ $? -ne 0 ]; then 
                return 1 
            fi 
        done 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog 
 
# See how we were called. 
case "$1" in 
    start) 
        start 
        ;; 
    stop) 
        stop 
        ;; 
    #reload) 

    #    reload 

    #    ;; 

    restart) 
        stop 
        start 
        ;; 
    #condrestart) 
    #    if [ -f /var/lock/subsys/$prog ]; then 
    #        stop 
    #        start 
    #    fi 
    #    ;; 
    status) 
        status memcached 
        ;; 
    *) 
        echo "Usage: $0 {start|stop|restart|status}" 
        exit 1 
esac 
 
exit $RETVAL 

 
6赋予执行权限
#chmod +x  memcached 
7设置memcached随系统启动
# chkconfig --add memcached 
# chkconfig --level 35 memcached on 

启动memcached

# service memcached start 

//启动的时候实际上是调用了下面的这个命令,以守护进程的方式来启动memcached 
/etc/memcached/bin/memcached -d -m 64 -u root -l 192.168.1.201  \

/etc/memcached/bin/memcached  -d -m 10   -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached .pid
     -d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

-u是运行Memcache的用户,我这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,

-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached .pid,如果要结束Memcache进程,执行:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25-n 最小分配空间,key+value+flags默认是48
-h 显示帮助


结束Memcache进程,执行 
# kill `cat /tmp/memcached .pid`

-p 11211 -c 1024 -P /etc/memcached/memcached.pid 
 
查看memcached是否启动

# ps -ef | grep memcached


参考资料

对Memcached有疑问的朋友可以参考下列文章:
Linux下的Memcache安装:

  http://www.ccvita.com/257.html
Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器: http://blog.s135.com/nginx_php_v5/

 

memcache 使用方法 API

 

Memcache::add — 添加一个值,如果已经存在,则返回false 
Memcache::addServer — 添加一个可供使用的服务器地址 
Memcache::close — 关闭一个Memcache对象 
Memcache::connect — 创建一个Memcache对象 
memcache_debug — 控制调试功能 
Memcache::decrement — 对保存的某个key中的值进行减法操作 
Memcache::delete — 删除一个key值 
Memcache::flush — 清除所有缓存的数据 
Memcache::get — 获取一个key值 
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计 
Memcache::getServerStatus — 获取运行服务器的参数 
Memcache::getStats — 返回服务器的一些运行统计信息 
Memcache::getVersion — 返回运行的Memcache的版本信息 
Memcache::increment — 对保存的某个key中的值进行加法操作 
Memcache::pconnect — 创建一个Memcache的持久连接对象 
Memcache::replace — R对一个已有的key进行覆写操作 
Memcache::set — 添加一个值,如果已经存在,则覆写 
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩 
Memcache::setServerParams — 在运行时修改服务器的参数


http://zbylovecool.blog.51cto.com/2515860/658008

 
  评论这张
 
阅读(1143)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017