TagCloud

Thursday, August 16, 2012

memcached installation

memcached 는 무료이며 오픈소스인 고성능의 분산 메모리 오브젝트 캐시 시스템이다.

CentOS 6.3 기준 설치 스크립트
// 1. memcached 다운로드
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
// 2. 압축 해제
tar -xvf memcached-1.4.15.tar.gz
// 3. configuration (필요시 libevent-devel 설치)
yum install libevent-devel 
./configure --prefix=/srv/memcached
// 4. 설치
make && make install
// 5. 실행(포트와 유저명 지정)
./memcached -p 11211 -d -u luvu
// 6. 확인(telnet 이용)
telnet 127.0.0.1 11211 후, stats 명령으로 확인
// 7. 종료 

// 8. 필요시 포트 개방
iptables -I INPUT -p tcp --dport 11211 -j ACCEPT
service iptables save
service iptables restart

// 9. memcached.conf 작성
vi /etc/sysconfig/memcached
PORT="11211"
USER="luvu"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

// 10.memcached 등록
vi /etc/init.d/memcached
#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid

# Standard LSB functions
#. /lib/lsb/init-functions

# Source function library.
. /etc/init.d/functions

PORT=11211
USER=luvu
MAXCONN=1024
CACHESIZE=64
OPTIONS=""

if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi

# Check that networking is up.
. /etc/sysconfig/network

if [ "$NETWORKING" = "no" ]
then
        exit 0
fi

RETVAL=0
prog="memcached"
pidfile=${PIDFILE-/var/run/memcached/memcached.pid}
lockfile=${LOCKFILE-/var/lock/subsys/memcached}

start () {
        echo -n $"Starting $prog: "
        # Ensure that /var/run/memcached has proper permissions
        if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then
                chown $USER /var/run/memcached
        fi

        daemon --pidfile ${pidfile} /srv/memcached/bin/memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
}
stop () {
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} /srv/memcached/bin/memcached
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
                rm -f ${lockfile} ${pidfile}
fi
}

restart () {
        stop
        start
}


# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p ${pidfile} memcached
        RETVAL=$?
        ;;
  restart|reload|force-reload)
        restart
        ;;
  condrestart|try-restart)
        [ -f ${lockfile} ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}"
        RETVAL=2
        ;;
esac

exit $RETVAL

# 11. 실행권한 추가
chmod +x /etc/init.d/memcached

# 12. 서비스 등록 및 확인 ( /etc/rc.d/rc.local 에 등록하여 사용할수도 있음 )
chkconfig --add memcached
chkconfig memcached on
chkconfig --list

참고 http://memcached.org/