YUM安装:
它依赖于libevent,不过这个一般都是系统自带的。另外我这里把Memcached安装到一个单独的服务器,其实生产环境中它也是单独部署的。
一般epel源中会有memcached,我们来看一下
1 | yum list all memcached* |
安装
1 | rpm -ql memcached 看一下生成的文件 |
第一个是服务脚本文件、第二个是配置文件、第三个和第四个是工具
启动,用命令启动需要指定用户,YUM安装时会自动创建memcached用户。-vv是显示启动过程。由于没有加-d参数,所以是前台运行。
这里可以看到内存分配过程,默认的内存最大64M,默认chunk大小48字节,增长因子是1.25倍。
第一个是96,后面的10922是说分配了多少个96字节的chunk
第二个是120,它是96的1.25倍,后面的8738是分配了多少个96字节的chunk
后面一次类推。
配置文件的内容也比较少
我们以服务的形式启动
1 | service memcached start |
查看启动端口
编译安装:
从这里下载最新版Memcached:
从这里下载libevent:
先编译安装libevent:因为编译安装memcached它会依赖这个库。
1 2 3 | [] # tar -xzf libevent-2.1.8-stable.tar.gz [] # cd libevent-2.1.8-stable [] # ./configure --prefix=/usr/local/libevent |
1 | make && make install |
安装完成
安装Memcached
1 2 3 | [] # tar -xzf memcached1.4.34.tar.gz [] # cd memcached1.4.34 [] # ./configure --prefix=/usr/local/memcached1.4.34 --with-libevent=/usr/local/libevent/ |
1 | make && make install |
安装完毕
创建运行账号
1 2 | groupadd -r memcached useradd -r -g memcached -s /sbin/nologin memcached |
启动memcached,要切换到安装目录中的bin目录中,因为没有配置环境变量
1 | . /memcached -u memcached -d |
添加一个环境变量
这样以后再执行memcached命令是就不需要切换目录了
1 2 3 4 5 6 7 8 9 | 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 .sh |
验证一下
设置成系统服务
memcached源码包中的scripts目录中自带这样一个脚本,拷贝到/etc/rc.d/init.d中即可
1 2 3 4 5 | 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 on |
下面可以根据你的需要修改一下这个脚本,主要是启动参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #! /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 $? |
建立目录
KILL掉之前启动的进程,然后我们用服务脚本进行启动
CentOS 7上的设置
这个文件就在源码包里面的scripts目录中
1 | cp memcached.service /usr/lib/systemd/system/ |
查看拷贝过去的文件
修改该文件,写成你编译安装的路径
建立配置文件
如果不使用配置文件,你可以像下面这样写
启动服务