Memcached (二)YUM安装和编译安装
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: 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
|
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/
|
查看拷贝过去的文件
建立配置文件
如果不使用配置文件,你可以像下面这样写
启动服务
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com