编译安装Memcached并使用systemctl管理

安装依赖

在Linux下编译,需要gcc、make、cmake、autoconf、libtool、libevent等工具,在Linux联网状态下我们可以使用yum命令来安装锁需要的依赖

yum -y install gcc gcc-c++ make cmake autoconf libtool libevent libevent-devel

编译安装Memcached

# 切换到资源包目录(我个人所有的资源包都是放在/usr/local/src目录下)
cd /usr/local/src

# 下载Memcached
wget http://www.memcached.org/files/memcached-1.6.6.tar.gz

# 解压
tar -zxvf memcached-1.6.6.tar.gz

# 编译 && 安装
./configure --prefix=/usr/local/memcached-1.6.6
make && make install

# 创建memcached的软连接
ln -s memcached-1.6.6 memcached

创建软链接的好处

为什么要创建软连接?因为以后可能会升级到其它版本,在环境变量和开机自启这些地方都使用软连接,这样可以方便以后升级的时候只需要删除旧的软连接重新对新版本创建一个软连接就好了,不需要在去到环境变量和开机自启的这些配置的地方再去修改。

配置环境变量

编辑/etc/profile文件,/usr/local/memcached/bin添加到环境变量中

export PATH="$PATH:/usr/local/memcached/bin"

添加后执行source /etc/profile使修改立即生效

systemctl管理memcached

在以前我们来管理Memcached的开机自启的时候我们都是使用的rc.local的方式来设置,但是这样的方式已经过时,在CentOS7中我们应当使用systemctl来管理

首先我们来看一下使用yum方式安装的memcached都做了啥

  1. 创建一个sbin/nologin类型的名为memcached的用户

    useradd memcached -s /sbin/nologin -M
    
  2. 安装memcached并采用systemctl来管理,memcached.service文件内容如下

    [Unit]
    Description=Memcached 
    Before=httpd.service
    After=network.target
    
    [Service]
    Type=simple
    EnvironmentFile=-/etc/sysconfig/memcached
    ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS
    
    [Install]
    WantedBy=multi-user.target
    
  3. 配置文件放在/etc/sysconfig/memcached

    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS=""
    

我们使用的是编译安装,不过我们可以仿照yum方式的行为来管理我们自己编译安装的Memcached服务

首先,创建一个memcached用户,专门用来管理memcached服务

useradd memcached -s /sbin/nologin -M

然后在我们的memcached安装目录下创建一个配置文件,添加我们自己的个人配置

# 创建配置目录
mkdir /usr/local/memcached/conf
touch /usr/local/memcached/conf/memcached

# 修改文件所属用户和组
chown -R memcached:memcached /usr/local/memcached/conf/memcached

# 在/usr/local/memcached/conf/memcached文件中添加如下内容
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

然后,在/usr/lib/systemd/system/目录下创建一个memcached.service文件

touch /usr/lib/systemd/system/memcached.service

并在memcached.service添加如下内容(就是把yum方式的EnvironmentFile和启动路径改了)

[Unit]
Description=Memcached 
Before=httpd.service
After=network.target

[Service]
Type=simple
EnvironmentFile=-/usr/local/memcached/conf/memcached
ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

[Install]
WantedBy=multi-user.target

重载daemon

执行下面的命令重新载入 systemd,扫描新的或有变动的单元

systemctl daemon-reload

开机自启

systemctl enable memcached.service # 设置开机自启
systemctl disable memcached.service # 取消开机自启服务

memcached管理常用命令

systemctl status memcached.service  # 查看Memcached状态
systemctl start memcached.service   # 开启Memcached
systemctl stop memcached.service    # 关闭Memcached
systemctl reload memcached.service  # 重载配置
systemctl restart memcached.service # 重启Memcached(相当于stop&start)

可以使用lsof -i:端口号查看Memcached服务

posted @ 2020-08-21 10:16  itbsl  阅读(1234)  评论(2编辑  收藏  举报