Memcached (二)YUM安装和编译安装
YUM安装:
它依赖于libevent,不过这个一般都是系统自带的。另外我这里把Memcached安装到一个单独的服务器,其实生产环境中它也是单独部署的。
一般epel源中会有memcached,我们来看一下
yum list all memcached*https://s3.运维网.com/wyfs02/M01/8E/01/wKiom1iyzlriuhl-AADOwmva6Ng327.jpg
安装
https://s5.运维网.com/wyfs02/M02/8E/01/wKiom1iyzoSyyIAjAAA-zhkve_g975.jpg
rpm -ql memcached看一下生成的文件 第一个是服务脚本文件、第二个是配置文件、第三个和第四个是工具
https://s1.运维网.com/wyfs02/M02/8D/FF/wKioL1iyzqrwTiPGAADeHGHx1PI943.jpg
启动,用命令启动需要指定用户,YUM安装时会自动创建memcached用户。-vv是显示启动过程。由于没有加-d参数,所以是前台运行。
这里可以看到内存分配过程,默认的内存最大64M,默认chunk大小48字节,增长因子是1.25倍。
第一个是96,后面的10922是说分配了多少个96字节的chunk
第二个是120,它是96的1.25倍,后面的8738是分配了多少个96字节的chunk
后面一次类推。
https://s2.运维网.com/wyfs02/M00/8D/FF/wKioL1iyzybwscwOAADwSpQt7hw760.jpg
配置文件的内容也比较少
https://s3.运维网.com/wyfs02/M00/8E/01/wKiom1iyzxeD2hP4AAA-vfsapTw181.jpg
我们以服务的形式启动
service memcached starthttps://s1.运维网.com/wyfs02/M01/8D/FF/wKioL1iyz36w3jxOAAAqpts9jDk449.jpg
查看启动端口
https://s5.运维网.com/wyfs02/M02/8E/01/wKiom1iyz5DgpdIgAABBjPeziYQ407.jpg
编译安装:
从这里下载最新版Memcached:http://memcached.org/
从这里下载libevent:http://libevent.org/
先编译安装libevent:因为编译安装memcached它会依赖这个库。
[]# tar -xzf libevent-2.1.8-stable.tar.gz
[]# cd libevent-2.1.8-stable
[]# ./configure --prefix=/usr/local/libevent https://s5.运维网.com/wyfs02/M02/8D/FF/wKioL1iy0iezIAoKAABZyG6-Ab4857.jpg
make && make install https://s3.运维网.com/wyfs02/M00/8E/01/wKiom1iy0orjobyYAABk9IFRiR0490.jpg
安装完成
https://s4.运维网.com/wyfs02/M01/8E/01/wKiom1iy0xLBmU4vAAG1_Px9jzg596.jpg
安装Memcached
[]# tar -xzf memcached1.4.34.tar.gz
[]# cd memcached1.4.34
[]# ./configure --prefix=/usr/local/memcached1.4.34 --with-libevent=/usr/local/libevent/https://s5.运维网.com/wyfs02/M01/8D/FF/wKioL1iy1EKhCrlMAABLkW1LuuA702.jpg
make && make installhttps://s1.运维网.com/wyfs02/M00/8E/01/wKiom1iy1HbRFjOBAACuTCor0Qw198.jpg
安装完毕
https://s1.运维网.com/wyfs02/M00/8D/FF/wKioL1iy1JvTMJrBAADyp14pIEw865.jpg创建运行账号
groupadd -r memcached
useradd -r -g memcached -s /sbin/nologin memcachedhttps://s5.运维网.com/wyfs02/M01/8E/01/wKiom1iy1RvSHDFxAAAqQP27qxk544.jpg
启动memcached,要切换到安装目录中的bin目录中,因为没有配置环境变量
./memcached -u memcached -dhttps://s4.运维网.com/wyfs02/M01/8E/01/wKiom1iy1cXwYxJBAABZ4DLBw9E496.jpg
添加一个环境变量
这样以后再执行memcached命令是就不需要切换目录了
vim /etc/profile.d/memcached.sh
添加下面的内容:
#!/bin/bash
MC_PATH=/usr/local/memcached1.4.34
export PATH=$PATH:$MC_PATH/bin
chmod +x /etc/profile.d/memcached.sh
. /etc/profile.d/memcached.shhttps://s3.运维网.com/wyfs02/M02/8E/01/wKiom1iy1ruCSdhjAABBSUJQrG4021.jpg
验证一下
https://s1.运维网.com/wyfs02/M02/8E/01/wKiom1iy10HxFWHiAAAreYAoLis095.jpg
设置成系统服务
memcached源码包中的scripts目录中自带这样一个脚本,拷贝到/etc/rc.d/init.d中即可
https://s4.运维网.com/wyfs02/M00/8E/01/wKiom1iy1_rxk0r4AABKvTRe_N8427.jpg
cp memcached.sysv /etc/rc.d/init.d/memcached
chmod +x /etc/rc.d/memcached
chkconfig --add /etc/rc.d/memcached
chkconfig --list | grep memcached
chkconfig memcached onhttps://s3.运维网.com/wyfs02/M02/8E/01/wKiom1iy2OSAjF-YAAB2yHVWaPA172.jpg
下面可以根据你的需要修改一下这个脚本,主要是启动参数
#! /bin/sh
#
# chkconfig: - 55 45
# description:The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# Source function library.
. /etc/rc.d/init.d/functions
#设置你想要端口
PORT=11211
#设置运行账号
USER=memcached
#指定最大连接数量
MAXCONN=1024
#指定memcached使用的最大内存
CACHESIZE=64
OPTIONS=""
#指定安装路径
MEMCACHED_BIN_PATH=/usr/local/memcached1.4.34/bin
if [ -f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi
# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
exit 0
fi
RETVAL=0
prog="memcached"
#这里引用了一些变量用于设置启动参数,你可以自行添加其他启动参数在这里引用
start () {
echo -n $"Starting $prog: "
# 确保这个目录 /var/run/memcached 存在,并且memcached用户有权限读写
chown $USER /var/run/memcached
#这里写全路径否则找不到,如果你觉得路径太长你可以写一个变量在这里引用。
#daemon $MEMCACHED_BIN_PATH/memcached -d -p ......
daemon /usr/local/memcached1.4.34/bin/memcached -d -p $PORT -u $USER-m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
stop () {
echo -n $"Stopping $prog: "
killproc memcached
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
rm -f /var/lock/subsys/memcached
rm -f /var/run/memcached/memcached.pid
fi
}
restart () {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status memcached
;;
restart|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/memcached ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
exit 1
esac
exit $? 建立目录
https://s5.运维网.com/wyfs02/M01/8E/01/wKiom1iy3FuRKu5vAAAetPKVYF0727.jpg
KILL掉之前启动的进程,然后我们用服务脚本进行启动
https://s1.运维网.com/wyfs02/M01/8D/FF/wKioL1iy3PDRfi5aAABMM5W-ed0101.jpg
CentOS 7上的设置
这个文件就在源码包里面的scripts目录中
https://s3.运维网.com/wyfs02/M00/9D/A5/wKioL1mDIm_Tsqh8AAETJPsNh18623.jpg
cp memcached.service /usr/lib/systemd/system/https://s2.运维网.com/wyfs02/M01/9D/A6/wKiom1mDIm_DBN2aAAB9YsOUfeU339.jpg
查看拷贝过去的文件
https://s4.运维网.com/wyfs02/M00/9D/A6/wKiom1mDItORkDTFAACdKQ7yow4562.jpg修改该文件,写成你编译安装的路径
https://s2.运维网.com/wyfs02/M00/9D/A5/wKioL1mDIuCRu5hZAACfvk_fYeA131.jpg
建立配置文件
https://s4.运维网.com/wyfs02/M00/9D/A5/wKioL1mDIyHzB-e2AABMX4xBec0214.jpg
如果不使用配置文件,你可以像下面这样写
https://s4.运维网.com/wyfs02/M01/9D/A6/wKiom1mDIvyyno6rAACWS-qz1fw930.jpg
启动服务
https://s4.运维网.com/wyfs02/M02/9D/A6/wKiom1mDIzeCwp0uAAB-fW_YmLU148.jpg
页:
[1]