編譯安裝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服務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章