Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. In this article, I’ll show you “How to compile memcached on CentOS” step-by-step.
Download memcached & libevent
The first step, download latest versions of memcached & libevent, type following commands
# cd /opt # wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz # wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz
Installing libevent
To install libevent, type the following commands
# tar zxvf libevent-1.4.14b-stable.tar.gz # cd libevent-1.4.14b-stable # ./configure --prefix=/usr/lib/libevent # make # make install
Installing memcached
To install memcached, type the following commands
# cd /opt # tar zxvf memcached-1.4.13.tar.gz # cd memcached-1.4.13 # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/lib/libevent # make # make install
Configuring memcached
Adding a user called “memcached”, enter
# useradd -s /sbin/nologin -d /usr/share memcached
If you wish to add memcached service to start when the machine boot, create the memcached script file in /etc/init.d
# touch /etc/init.d/memcached # chmod +x /etc/init.d/memcached # vi /etc/init.d/memcached
Add the following content
#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# Source function library.
. /etc/init.d/functions
MEMCACHED="/usr/local/memcached/bin/memcached"
VAR_RUN="/var/run"
VAR_LOCK="/var/lock/subsys/"
PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=256
OPTIONS=""
# Check that networking is up.
. /etc/sysconfig/network
if [ "$NETWORKING" = "no" ]
then
exit 0
fi
RETVAL=0
prog="memcached"
start () {
echo -n $"Starting $prog: "
daemon --pidfile $VAR_RUN/memcached.pid $MEMCACHED -d -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P $VAR_RUN/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $VAR_LOCK/memcached
}
stop () {
echo -n $"Stopping $prog: "
killproc -p $VAR_RUN/memcached.pid $MEMCACHED
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f $VAR_LOCK/memcached
rm -f $VAR_RUN/memcached.pid
fi
}
restart () {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status memcached
;;
restart|reload|force-reload)
restart
;;
condrestart)
[ -f $VAR_LOCK/memcached ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
exit 1
esac
exit $?
And type the following commands to add memcached service to start when the machine boot, and start memcached service
# chkconfig --level 345 memcached on # service memcached start
Testing memcached
Connecting to memcached, type
# telnet localhost 11211
Output
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.