zoukankan      html  css  js  c++  java
  • 将Memcached作为服务自动启动

    1、最简单的做法

    通常:启动Memcache的服务器端的命令为:

    /usr/local/bin/memcached -d -m 256 -u root -l 127.0.0.1 -p 12000 -c 2048 -P /tmp/memcached.pid
    

     在/etc/rc.d/rc.local中加入一行,上面命令 ,最好选择是:nobody 或 deamon

    -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,
    

     2、写成脚本,作为服务

    #!/bin/sh
    #
    # memcached    Startup script for memcached processes
    #
    # chkconfig: - 90 10
    # description: Memcache provides fast memory based storage.
    # processname: memcached
    # Date: 2015-08-08
    # Author: cpz@erongtu.com
    
    . /etc/rc.d/init.d/functions
    . /etc/sysconfig/network
    
    IPADDR=`/sbin/ifconfig eth0 | awk -F ':' '/inet addr/{print $2}' | sed 's/[a-zA-Z ]//g'`
    MEMCACHED="/usr/local/bin/memcached"
    PROG=$(basename  $MEMCACHED)
    PORT=12000
    USER=root
    MEMORY=256
    PID="/tmp/memcached.pid"
    CONN=2048
    LOCKFILE="/var/lock/subsys/memcached"
    RETVAL=0
    
    [ -x $MEMCACHED ] || exit 0
    
    start() {
        if [ -e $PID -a ! -z $PID ];then
            echo $PROG" already running"
            exit 1
        fi
    
        echo -n $"Starting $PROG"
        # Starting memcached with 256MB memory on port 12000 as deamon and user nobody
        $MEMCACHED -m $MEMORY -p $PORT -l $IPADDR -d -u $USER  -c $CONN -P $PID
        RETVAL=$?
    
        [ $RETVAL -eq 0 ] && {
            touch $LOCKFILE
            success $"$PROG"
        }
        echo 
    
        return $RETVAL
    }
    
    stop() {
        echo -n $"Stopping $PROG "
    
        killproc -d 10 $MEMCACHED
        echo
        [ $RETVAL = 0 ] && rm -f $PID $LOCKFILE
    
        RETVAL=$?
        return $RETVAL
    }
    
    reload() {
        echo -n $"Reloading $PROG"
        killproc $MEMCACHED -HUP
    
        RETVAL=$?
        echo
        return $RETVAL
    }
    
    case "$1" in
        start)
            start
            ;;
    
        stop)
            stop
            ;;
    
        reload)
            reload
            ;;
    
        restart)
            stop
            start
            ;;
    
        condrestart)
            if test "x`pidof memcached`" != x; then
                stop
                start
            fi
            ;;
    
        *)
            echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
            exit 1
    
    esac
    
    exit $RETVAL
    
    #chmod +x /etc/init.d/memcached
    #chkconfig --add memcached
    #chkconfig memcached on
    

     3、附上 memcached 的安装过程

    1)下载(软件不是最新,请到官网下载最新版本)

    cd /usr/loca/src
    wget http://www.memcached.org/files/memcached-1.4.24.tar.gz
    wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
    

     2)安装libevent

    cd /usr/loca/src
    tar zxvf libevent-2.0.22-stable.tar.gz
    cd libevent-2.0.22-stable
    ./configure --prefix=/usr/local/libevent
    make && make install
    

    3) 测试libevent

    ls -al /usr/lib | grep libevent
    

     4)安装memcached

    cd /usr/loca/src
    tar zxvf memcached-1.4.24.tar.gz
    cd memcached-1.4.24
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
    
    make && make install
    

     5)测试是否安装成功

    ls -al /usr/local/bin/mem*
    

     6)安装libmemcached

    cd /usr/local/src
    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
    tar zxvf libmemcached-0.42.tar.gz
    cd libmemcached-0.42
    ./configure --prefix=/usr/local/libmemcached  --with-memcached
    make && make install
    

    7)PHP安装memcached扩展

    pecl install memcached
    

     或者

    cd /usr/local/src
    wget https://pecl.php.net/get/memcached-2.2.0.tgz
    tar zxf memcached-2.2.0.tgz
    cd memcached-2.2.0
    phpize
    ./configure --enable-memcached  --with-libmemcached-dir=/usr/local/libmemcached
    make && make install
    echo extension=memcached.so > /etc/php.d/memcached.ini
    service php-fpm reload
    
  • 相关阅读:
    Linux下安装FTP服务(Ubuntu)
    Ubuntu下无法使用Secure_CRT连接服务器
    Mysql 锁机制
    PHP提取HTML代码中img标签下src属性
    Mysql 隐式转换
    PHPExcel在TP下使用
    ThinkPHP同时操作多个数据库
    PHP 时间相关操作
    ThinkPHP输入验证和I方法使用
    ThinkPHP模板内使用U方法
  • 原文地址:https://www.cnblogs.com/chenpingzhao/p/4792134.html
Copyright © 2011-2022 走看看