一、memcached瞭解了一段時間了,一直沒有去實踐。php
Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它經過在內存中緩存數據和對象來減小讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,可是客戶端能夠用任何語言來編寫,並經過memcached協議與守護進程通訊。html
二、系統環境,centos6.3的系統。上面安裝了mysql數據庫。 mysql
三、下面開始安裝了,git
http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
四、解壓,配置,編譯,安裝github
./configure --prefix=/usr/local/libevent && make && make install ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent make && make install
五、爲memcached創建隨機啓動的服務腳本,建立/etc/init.d/memcached文件,內容:sql
#!/bin/bash # # Init file for memcached # # chkconfig: 345 60 60 # description: The memcached daemon is a network memory cache service. # # processname: memcached # config: /etc/sysconfig/memcached . /etc/rc.d/init.d/functions [ -f /etc/sysconfig/memcached ] && . /etc/sysconfig/memcached #將memcached的參數定義設置爲獨立配置文件 ## Default variables PORT=${PORT:-11211} USER=${USER:-nobody} MAXCONN=${MAXCONN:-1024} CACHESIZE=${CACHESIZE:-64} OPTIONS=${OPTIONS:-""} RETVAL=0 prog="/usr/local/memcached-1.4.15/bin/memcached" desc="network memory cache service" lockfile="/var/lock/subsys/memcached" start() { echo -n $"Starting $desc (memcached): " daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE $OPTIONS RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $lockfile return $RETVAL } stop() { echo -n $"Shutting down $desc (memcached): " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile return $RETVAL } restart() { stop start } reload() { echo -n $"Reloading $desc ($prog): " killproc $prog -HUP RETVAL=$? echo return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e $lockfile ] && restart RETVAL=$? ;; reload) reload ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1 esac exit $RETVAL
固然也能夠借鑑官網的:數據庫
https://pressflow.atlassian.net/wiki/display/PF/Replacement+Init+Script+for+memcached+on+Debian+or+Ubuntu
六、創建memcached參數配置文件: vim
echo -e 'PORT="11211" \nUSER="root" \nMAXCONN="1024" \nCACHESIZE="64" \nOPTIONS="" ' > /etc/sysconfig/memcached
七、添加執行權限,加入到系統服務: centos
chmod 755 /etc/init.d/memcached chkconfig --add memcached chkconfig memcached on service memcached start
八、安裝到這裏已經基本結束了,咱們查看下他是否啓動了緩存
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7645/mysqld tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 2342/memcached tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2498/httpd tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 2265/perl tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1624/sshd
九、能夠看到端口也開放了。接下來咱們就能夠安裝memadmin來管理mencache
安裝memcached的php擴展 首先到http://pecl.php.net/package/memcache下載memcache的php擴展最新穩定版本 wget http://pecl.php.net/get/memcache-2.2.5.tgz wget http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz tar zxvf memadmin-1.0.12.tar.gz cd memadmin mv * /var/www/html/memadmin tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5 phpize /configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir make && make install
十、在php.ini文件中添加memcache擴展
vim /etc/php.d/php.ini 添加如下內容 extension_dir = "/usr/lib/php/modules/" extension=memcache.so 檢驗memcache安裝 [root@Linux ~]#php -m [...] memcache mysql mysqli [...]
十一、查看memcache使用狀況