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 : 重寫每個資料頁尺寸。調整資料項最大尺寸。