YUM安装:

它依赖于libevent,不过这个一般都是系统自带的。另外我这里把Memcached安装到一个单独的服务器,其实生产环境中它也是单独部署的。

一般 epel 源中会有 memcached ,我们来看一下

1
yum list all memcached*

Memcached (二)YUM安装和编译安装

安装

Memcached (二)YUM安装和编译安装

1
rpm -ql memcached  看一下生成的文件

第一个是服务脚本文件、第二个是配置文件、第三个和第四个是工具

Memcached (二)YUM安装和编译安装

启动,用命令启动需要指定用户, YUM 安装时会自动创建 memcached 用户。 -vv 是显示启动过程。由于没有加 -d 参数,所以是前台运行。

这里可以看到内存分配过程,默认的内存最大 64M ,默认 chunk 大小 48 字节,增长因子是 1.25 倍。

第一个是 96 ,后面的 10922 是说分配了多少个 96 字节的 chunk

第二个是 120 ,它是 96 1.25 倍,后面的 8738 是分配了多少个 96 字节的 chunk

后面一次类推。

Memcached (二)YUM安装和编译安装

配置文件的内容也比较少

Memcached (二)YUM安装和编译安装

我们以服务的形式启动

1
service memcached start

Memcached (二)YUM安装和编译安装

查看启动端口

Memcached (二)YUM安装和编译安装


编译安装:

从这里下载最新版Memcached: http://memcached.org/

从这里下载libevent http://libevent.org/

先编译安装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

Memcached (二)YUM安装和编译安装

1
make && make install

Memcached (二)YUM安装和编译安装

安装完成

Memcached (二)YUM安装和编译安装

安装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/

Memcached (二)YUM安装和编译安装

1
make && make install

Memcached (二)YUM安装和编译安装

安装完毕

Memcached (二)YUM安装和编译安装 创建运行账号

1
2
groupadd -r memcached
useradd -r -g memcached -s /sbin/nologin memcached

Memcached (二)YUM安装和编译安装

启动memcached,要切换到安装目录中的bin目录中,因为没有配置环境变量

1
. /memcached -u memcached -d

Memcached (二)YUM安装和编译安装

添加一个环境变量

这样以后再执行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 (二)YUM安装和编译安装

验证一下

Memcached (二)YUM安装和编译安装

设置成系统服务

memcached源码包中的scripts目录中自带这样一个脚本,拷贝到/etc/rc.d/init.d中即可

Memcached (二)YUM安装和编译安装

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

Memcached (二)YUM安装和编译安装

下面可以根据你的需要修改一下这个脚本,主要是启动参数

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 $?

建立目录

Memcached (二)YUM安装和编译安装

KILL掉之前启动的进程,然后我们用服务脚本进行启动

Memcached (二)YUM安装和编译安装


CentOS 7上的设置

这个文件就在源码包里面的scripts目录中

Memcached (二)YUM安装和编译安装

1
cp memcached.service /usr/lib/systemd/system/

Memcached (二)YUM安装和编译安装

查看拷贝过去的文件

Memcached (二)YUM安装和编译安装 修改该文件,写成你编译安装的路径

Memcached (二)YUM安装和编译安装

建立配置文件

Memcached (二)YUM安装和编译安装

如果不使用配置文件,你可以像下面这样写

Memcached (二)YUM安装和编译安装

启动服务

Memcached (二)YUM安装和编译安装