1. 程式人生 > >centos7.5安裝memcached

centos7.5安裝memcached

安裝memcached需要先安裝libmemcached

一,安裝libmemcached

1,下載 : https://launchpad.net/libmemcached/+download

2,安裝 : tar -zxf .... cd ....  ./configure --prefix=/usr/local/related/libmemched   make && make install

二,安裝memcached

1,下載:http://pecl.php.net/package/memcached

2,安裝:tar -zxf ...... cd .... 安裝它需要指定php-config與libmemcached的地址(如果它沒有安裝在預設地址)

./configure --prefix=/usr/local/related/memcached-3.0.4 --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/related/libmemcached-1.0.18/

可能會報一個錯:

configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check

可以根據提示指定--disable-memcached-sasl 解決,也可以安裝這個sasl檔案:

To solve this issue with CentOS, you should be able to run:

yum install cyrus-sasl-devel

FYI, this question refers to CentOS, but for Ubuntu, the following should work:

sudo apt-get install libsasl2-dev

再次安裝如果報錯:

configure: error: no, libmemcached sasl support is not enabled. Run configure with --disable-memcached-sasl to disable this check

這是因為安裝libmemcached時沒有開啟sasl支援

所以重新安裝libmemcached

./configure --prefix=/usr/local/related/libmemcached --enable-sasl

 三,安裝memcached服務

上面安裝了php的memcached擴充套件後安裝memcached服務

memcached伺服器
memcached
下載地址http://memcached.org/
wget下載路徑http://www.memcached.org/files/memcached-1.4.25.tar.gz
這裡用到的是
memcached-1.4.25.tar.gz


memcached基於libevent的事件處理:libevent是個程式庫,他將Linux 的epoll、BSD類作業系統的kqueue等時間處理功能封裝成統一的介面。memcached使用這個libevent庫,因此能在Linux、BSD、Solaris等作業系統上發揮其高效能
libevent
下載地址http://libevent.org/
wget下載路徑http://jaist.dl.sourceforge.net/project/levent/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
這裡用到的是
libevent-2.0.22-stable.tar.gz


用 WinSCP上傳到指定的目錄下,這裡是
/usr/local/src


shell端
查詢系統是否已安裝libevent
RPM是RedHat Package Manager(RedHat軟體包管理工具)類似Windows裡面的“新增/刪除程式”
-i            :install 安裝
-v            :顯示詳細資訊
-vv           :顯示更加詳細的資訊
-h            :使用#顯示安裝進度
-U            :軟體存在則升級軟體,不存在則安裝軟體
-F            :軟體存在則升級軟體,不存在則不做任何動作
-e            :程式解除安裝--nodeps  不解除安裝相關依賴包,可能導致其他軟體無法使用
-q            : 查詢某個包是否安裝
--test        :僅測試是否可以安裝,但是不進行安裝
--nodeps      :不考慮依賴關係進行安裝,可能造成軟體無法正常使用
--force       :忽略軟體包及檔案的衝突
--replacepkge :無論軟體包是否已被安裝,都強行安裝軟體包
--replacepkgs :重新安裝軟體包,如原有配置檔案存在,可能無法覆蓋
如下引數只能配合-q組合使用如-qa在所有已安裝包中查詢是否安裝某個包
-a, --all      : 查詢/驗證所有包
-p, --package  : 查詢/驗證包檔案
-l, --list     : 查詢包中的列表檔案
-d, --docfiles : 查詢列表所有文件檔案
-f, --file     : 查詢/驗證包擁有的檔案
例rpm -ivh zsh-4.3.10-4.1.el6.x86_64.rpm安裝zsh-4.3.10-4.1.el6.x86_64.rpm並顯示詳細資訊和安裝進度
|grep 搜尋命令的輸出中是否包含某個字串,加亮顯示(這裡是-qa命令輸出的字串中查詢)
這裡顯示libevent-2.0.21-4.el7.x86_64,說明已安裝libevent-2.0.21-4.el7.x86_64
rpm -qa|grep libevent


解除安裝已安裝的libevent
rpm -e libevent-2.0.21-4.el7.x86_64


進入到安裝包目錄
cd /usr/local/src


解壓縮libevent到當前資料夾
tar -zxvf libevent-2.0.22-stable.tar.gz


進入解壓縮目錄
cd libevent-2.0.22-stable


配置安裝目錄
./configure --prefix=/usr/local/libevent


編譯
make


安裝
make install


返回上級目錄
cd ../


解壓縮memcached到當前資料夾
這個壓縮包沒有用gzip格式壓縮  所以解壓的時候也不用加上z,直接 tar -xvf 就可以了
tar -xvf memcached-1.4.25.tar.gz


進入解壓縮目錄
cd memcached-1.4.25


配置安裝目錄,及關聯的libevent庫安裝目錄
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent


編譯
make


安裝
make install


建立資料夾用來儲存memcached的程序檔案
mkdir -m777 -p /usr/local/memcached/pid


啟動memcached
-d  選項是啟動一個守護程序。
-u  表示啟動memcached的使用者,這裡為root,可以指定低許可權使用者啟動memcached。
-m  是分配給Memcache使用的記憶體數量,單位是MB,預設64MB。內容容量達到指定的值之後memcached回自動刪除不適用的快取
-p  是設定Memcache的TCP監聽的埠,最好是1024以上的埠,memcached預設埠11211。
-c  選項是最大執行的併發連線數,按照伺服器的負載量來設定,預設是1024。
-P  是設定儲存Memcache的pid檔案,也就是儲存程序ID到指定檔案,只有在使用 -d 選項的時候才有意義。
-vv 輸出詳細資訊
也可以啟動多個守護程序,但是埠不能重複。這樣就可以在一臺機器上相當擁有多個Memcached伺服器
/usr/local/memcached/bin/memcached -d -m 256 -u root -p 11211 -c 1024 -P /usr/local/memcached/pid/memcached.pid -vv


殺死memcached程序
kill `cat /usr/local/memcached/pid/memcached.pid`


/*
或者可以檢視11211埠使用情況獲取使用程序ID
lsof -i:11211


直接用kill 程序ID 來殺死程序,這裡memcached的程序ID是20146
kill 20146
*/


將memcached放到service控制中將下面程式碼新建儲存到/etc/init.d/memcached中
#!/bin/bash
# memcached MemCached
# it is v.1.4.25 version.
# chkconfig: - 85 15
# description: memcached is very good
# processname: memcached
MEMCACHED="/usr/local/memcached/bin/memcached"
PID_FILE="/usr/local/memcached/pid/memcached.pid"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
start()
{
    $MEMCACHED -d -m 256 -u root -p 11211 -c 1024 -P ${PID_FILE}
}
stop()
{
    kill `cat $PID_FILE`
}
restart(){
    stop
    start
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    *)
    echo $"Usage: 0 {start|stop|restart}"
    exit 1
esac
exit 0
:wq  儲存並退出
vim /etc/init.d/memcached


設定檔案的訪問許可權
chmod 755 /etc/init.d/memcached


可以使用service控制memcached啟用關閉了
service memcached start


讓memcached服務加入到開機啟動指令管理的服務列表中
chkconfig --add memcached


設定開機啟動
chkconfig memcached on


開啟防火牆11211埠的外部訪問
firewall-cmd --zone=public --add-port=11211/tcp --permanent


重啟防火牆
firewall-cmd --reload

附
linux啟動memcached選項
-p   : 監聽的TCP埠(預設: 11211)
-U   : 監聽的UDP埠(預設: 11211, 0表示不監聽)
-s   : 用於監聽的UNIX套接字路徑(禁用網路支援)
-a   : UNIX套接字訪問掩碼,八進位制數字(預設:0700)
-l   : 監聽的IP地址。(預設:INADDR_ANY,所有地址)
-d   : 作為守護程序來執行。
-r   : 最大核心檔案限制。
-u   : 設定程序所屬使用者。(只有root使用者可以使用這個引數)
-m   : 單個數據項的最大可用記憶體,以MB為單位。(預設:64MB)
-M   : 記憶體用光時報錯。(不會刪除資料)
-c   : 最大併發連線數。(預設:1024)
-k   : 鎖定所有記憶體頁。注意你可以鎖定的記憶體上限。試圖分配更多記憶體會失敗的,所以留意啟動守護程序時所用的使用者可分配的記憶體上限。(不是前面的 -u  引數;在sh下,使用命令"ulimit -S -l NUM_KB"來設定。)
-v   : 提示資訊(在事件迴圈中列印錯誤/警告資訊。)
-vv  : 詳細資訊(還列印客戶端命令/響應)
-vvv : 超詳細資訊(還列印內部狀態的變化)
-h   : 列印這個幫助資訊並退出。
-i   : 列印memcached和libevent的許可。
-P   : 儲存程序ID到指定檔案,只有在使用 -d 選項的時候才有意義。  
-f   : 塊大小增長因子。(預設:1.25)
-n   : 分配給key+value+flags的最小空間(預設:48)
-L   : 嘗試使用大記憶體頁(如果可用的話)。提高記憶體頁尺寸可以減少"頁表緩衝(TLB)"丟失次數,提高執行效率。為了從作業系統獲得大記憶體頁,memcached會把全部資料項分配到一個大區塊。
-D   : 使用  作為字首和ID的分隔符。這個用於按字首獲得狀態報告。預設是":"(冒號)。如果指定了這個引數,則狀態收集會自動開啟;如果沒指定,則需要用命令"stats detail on"來開啟。
-t   : 使用的執行緒數(預設:4)
-R   : 每個連線可處理的最大請求數。
-C   : 禁用CAS。
-b   : 設定後臺日誌佇列的長度(預設:1024)
-B   : 繫結協議 - 可能值:ascii,binary,auto(預設)
-I   : 重寫每個資料頁尺寸。調整資料項最大尺寸。