What is Memcached? 网址:http://www.memcached.org/
安装依赖:
memcached依赖libevent,需要先安装libevent包:
yum install libevent-devel
下载安装:
wget http://www.memcached.org/files/memcached-1.4.21.tar.gz
tar -zxvf memcached-1.4.21.tar.gz
cd memcached-1.4.21/
./configure
make
make install
安装完之后memcached路径在/usr/local/bin/memcached
启动memcached服务:
/usr/local/bin/memcached -d -m 100 -u root -l 192.168.5.177 -p 11211 -c 256 -P /tmp/memcached.pid
参数说明:
-d 启动一个守护进程,
-m 分配给Memcache使用的内存大小,单位是MB
-u 运行Memcache的用户
-l 监听的服务器IP地址,可以有多个地址的话
-p 设置Memcache监听的端口
-c 最大运行的并发连接数,默认是1024,根据服务器的负载量来设定
-P 设置保存Memcache的pid文件
停止memcached服务:
kill `cat /tmp/memcached.pid`
也可以写个脚本来启动停止memcached:
#!/bin/sh
WORK_DIR="/opt/cache"
MEMCACHE="/usr/local/bin/memcached"
RUNNING_USER="root"
MEMORY=100
IP_ADDRESS="192.168.0.10"
PORT=11211
MAX_CONNECTION=256
PID="$WORK_DIR/memcached.pid"
OPTS="-d -m $MEMORY -u $RUNNING_USER -l $IP_ADDRESS -p $PORT -c $MAX_CONNECTION -P $PID"
psid=0
checkpid() {
if [ -f "$PID" ]; then
psid=`cat "$PID"`
else
psid=0
fi
}
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "warn: memcache already started! (pid=$psid)"
echo "================================"
else
echo -n "Starting Memcache ..."
CMD="$MEMCACHE $OPTS"
su - $RUNNING_USER -c "$CMD"
sleep 1
checkpid
if [ $psid -ne 0 ]; then
echo "(pid=$psid) [OK]memcache start on $PORT"
else
echo "[Failed]"
fi
fi
}
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo -n "Stopping Memcache ...(pid=$psid) "
kill -9 $psid
sleep 1
if [ $? -eq 0 ]; then
rm -f "$PID"
echo "[OK]"
else
echo "[Failed]"
fi
checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================"
echo "warn: memcache is not running"
echo "================================"
fi
}
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "memcache is running! (pid=$psid)"
else
echo "memcache is not running"
fi
}
info() {
echo "System Information:"
echo "WORK_DIR:$WORK_DIR"
echo "MEMCACHE:$MEMCACHE"
echo "OPTS:$OPTS"
}
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'status')
status
;;
'info')
info
;;
*)
echo "Usage: $0 {start|stop|restart|status|info}"
exit 1
esac
exit 0