新聞中心
序言

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了炎陵免費建站歡迎大家使用!
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應用以減輕數(shù)據(jù)庫負載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。
Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。
當然memcached分為服務端和客戶端。服務端用來存放緩存,客戶端用來操作緩存。
客戶端有兩種常見的實現(xiàn)方式。
第一種是用php代碼根據(jù)服務端的通訊規(guī)則自己寫一個。
第二種是安裝php擴展庫(php-memcached)。
一、準備工作
創(chuàng)建目錄source和package,分別用來放源碼和編譯后的文件
# mkdir /source/
# mkdir /package/
二、memcached(服務端篇)
首先先安裝memcached依賴庫libevent。
2.1 安裝libevent
[官方網(wǎng)站] http://libevent.org/
命令流程:
# cd /source/
# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
# tar -zxvf libevent-2.0.22-stable.tar.gz
# cd libevent-2.0.22-stable
# ./configure --prefix=/package/libevent
# make
# make install
2.2 安裝memcached
[官方網(wǎng)站] http://memcached.org/
命令流程:
# cd /source/
# wget http://memcached.org/files/memcached-1.4.25.tar.gz
# tar -zxvf memcached-1.4.25.tar.gz
# cd memcached-1.4.25
# ./configure --prefix=/lnmp/memcached --with-libevent=/package/libevent
# make
# make install
本章總結(jié):
通過以上操作就很簡單的把memcached服務端編譯好了。這時候就可以打開服務端進行工作了。
# /lnmp/memcached/bin/memcached -d -m 2048 -l 127.0.0.1 -p 11211 -u root -c 1024 –P /tmp/memcached.pid
啟動參數(shù)說明:
-d 選項是啟動一個守護進程。
-m 分配給Memcache使用的內(nèi)存數(shù)量,單位是MB,默認64MB。
-l 監(jiān)聽的IP地址。(默認:INADDR_ANY,所有地址)
-p 設置Memcache的TCP監(jiān)聽的端口,最好是1024以上的端口。
-u 運行Memcache的用戶,如果當前為root的話,需要使用此參數(shù)指定用戶。
-c 選項是最大運行的并發(fā)連接數(shù),默認是1024。
-P 設置保存Memcache的pid文件。
三、客戶端篇:php代碼
這種方法實現(xiàn)客戶端最簡單,直接下載我寫的《SL_Memcached》類庫include到自己的項目里調(diào)用相關對象就行了。
當然,你也可以用其他語言實現(xiàn)。這里就不在講了。
使用方法如下:
include('memcached.class.php');
$memcached = new SL_Memcached(); //實例化對象
$memcached->connect('127.0.0.1:11211'); //連接memcached服務端
$memcached->set('key1', '我是快樂的鍵值'); //設置鍵值
$memcached->set('key2', '我就要被刪了'); //設置鍵值
$memcached->delete('key2'); //刪除鍵值
var_dump($memcached->get('key1')); //獲取鍵值
var_dump($memcached->get('key2')); //獲取鍵值
?>
輸出:
string(21) "我是快樂的鍵值"
NULL
四、客戶端篇:php-memcached
4.1 安裝libmemcached
[官網(wǎng)] http://libmemcached.org/
命令流程:
# yum install libmemcached libmemcached-devel
4.2 安裝php-memcached
[官方網(wǎng)站] http://pecl.php.net/package/memcached
命令流程:
# cd /source/
# wget http://pecl.php.net/get/memcached-3.0.3.tgz
# tar -zxvf memcached-3.0.3.tgz
# cd memcached-3.0.3
# /lnmp/php/bin/phpize
# ./configure --with-php-config=/lnmp/php/bin/php-config
# make && make install
備注:
安裝成功后會有如下類似提示:
Installing shared extensions: /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/
這說明在 /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/ 該目錄下會生成memcached.so
這個就是memcached.so所在目錄。我們先記住這個目錄。
開始配置php-memcached
打開php.ini
# vi /lnmp/php/etc/php.ini
在合適的位置添加如下
extension = /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so
五、常見錯誤總匯
5.1 Unable to load dynamic library 'memcached.so' - libmemcached.so.11: cannot open shared object file: No such file or directory in Unknown no line 0
說明:沒有找到php的附加庫memcached.so所需動態(tài)庫libmemcached.so.11。出現(xiàn)上述錯誤一般是沒有將libmemcached目錄設置到環(huán)境變量里。
我們添加到環(huán)境變量LD_LIBRARY_PATH里就搞定了。
# export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PATH
本文名稱:CentOS7從零開始安裝編譯Memcached及配置
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/cochcpo.html


咨詢
建站咨詢
