Memcached
解析:
定義:分佈式高速緩存系統
- 分佈式是說可以在多臺服務器上同時安裝memcached的服務,這樣可以達到一個很好的集羣效果
- 高速是因爲memcached所有的數據都是維護在內存中的,讀取速度是要比存儲在硬盤中的數據讀取速度要快的多
作用:
當應用訪問量特別大的時候數據庫的壓力也會越來越大,memcached可以在我們的應用和數據庫當中增加一個緩衝層,之前已經在數據庫中讀取過的數據,第二次或者之後的訪問可以直接讀取memcached去讀取數據從而減輕數據庫壓力
理解:
memcached相當於只有一張表的數據庫,這張表有兩個字段,分別是key和value,value是保存的數據,key就是這份數據的id,用來保證查找時的唯一性
Memcache使用場景:
- 費持久化存儲:對數據存儲要求不高。
- 分佈式存儲:不是和單機使用。
- Key/Value存儲:格式簡單,不支持List、Array數據格式。
安裝:
安裝前說明:
- 編譯安裝,先安裝Libevent,再編譯安裝Memcache,編譯安裝更靈活,但是出現問題解決複雜
- 使用依賴管理工具yum、apt-get
- 兩個版本:Memcache/Memcached,memcached 是memcache的升級版本,在速度和穩定性上都會比memcache要好的多
一、服務端安裝
1. 比較簡單的依賴管理工具yum安裝
<1> 執行以下命令:
yum install -y memcached
-y 表示自動應答,即默認安裝所有需要用到的依賴包
<2> 安裝完成之後嘗試啓動memcached
/usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root
-b 守護進程模式(退出終端窗口之後使程序還在運行),-l 指定IP地址127.0.0.1 ,-p 指定端口號11211,-m 爲memcached分配多少內存(單位:M),-u 指定使用哪個用戶啓動memcached
<3> 查看memcached是否在運行:
ps -ef | grep memcached
或
pstree -p | grep memcached
<4> 如果能夠看到memcached進程,那就說明 memcached 服務端已經安裝成功了
二、客戶端安裝
客戶端的安裝又分爲兩步:
1. libmemcached 客戶端庫的安裝;
2. 爲PHP安裝 php-memcached 擴展
<1> 下載安裝所需要的兩個安裝包
#我的所有源碼包習慣放在該目錄下
cd /usr/local/src
#下載libmemcached源碼包
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
#下載memcached源碼包
wget http://pecl.php.net/get/memcached-2.2.0.tgz
ls
#會看到如下兩個壓縮包
libmemcached-1.0.18.tar.gz memcached-2.2.0.tgz
<2> libmemcached 客戶端庫的安裝:
#首先解壓 libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18/
#配置,–prefix 指定安裝目錄,該目錄我們後面會用到
./configure --prefix=/usr/lib/libmemcached
#編譯、安裝:
make && make install
<3> 爲PHP安裝 php-memcached 擴展
#首先解壓libmemcached-1.0.18.tar.gz
tar -zxvf memcached-2.2.0.tgz
cd cd memcached-2.2.0
#使用安裝php時生成的 phpize 來生成 configure 配置文件
#//具體用哪個要取決於你的phpize文件所在的目錄,這時你應該用 whereis phpize 來查看路徑,如果php是默認安裝的話,直接使用phpize即可
/usr/local/php/bin/phpize (或 /usr/bin/phpize)
#配置
#-with-php-config 指定 php-config,該文件與 phpize 所在目錄相同, –with-libmemcached-dir 指定 libmemcached 安裝目錄,就剛纔我們 –prefix 那個目錄 ,–disable-memcached-sasl 說明我們系統不支持sasl.h
./configure -with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl
#編譯、安裝
make && make install
如果安裝成功,會提示:Installing shared extension:/usr/local/php/lib/extensions/no-debug-non-zts-20160524/ 等類信息
<4> 編輯php配置文件php.ini,把 php-memcached 擴展加到配置文件
#查看php.ini位置
whereis php.ini
#在 php.ini 中添加以下內容
extension=memcached.so
<5> 重啓apache服務器,使配置生效
systemctl restart httpd.service
#然後查看memcached擴展是否安裝成功
#在腳本中用phpinfo()函數或者直接執行 php -m 命令查看