Linux下Memcache安裝配置的方法

Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據.簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度

安裝配置方法一

個人理解:

1.它是基於C語言的Libevent庫進行開發的
2.Memcache是一款C/S軟件,這款軟件是維護內存的.
3.是將數據在內存中使用,從內存中讀取要比從硬盤中讀取要快.
4.讀取內存會減少對I/O設備的調用,從而加大訪問速度.
5.內存是一個高速臨時存儲信息的硬件,斷電后里面的信息將被清除.
6.硬盤是一個低速長期存儲信息的硬件,斷電后里面的信息將被保留.

Linux下Memcache服務器端的安裝

Memcache用到了libevent這個庫用於Socket的處理,所以需要安裝libevent(如果你的系統已經安裝了libevent,可以不用安裝)

1.先安裝libevent。這個東西在配置時需要指定一個安裝路徑,即./configure –prefix=/usr;然後make;然後make install;
2.再安裝memcached,只是需要在配置時需要指定libevent的安裝路徑即./configure –with-libevent=/usr;然後make;然後make instal;

這樣就完成了Linux下Memcache服務器端的安裝。詳細的方法如下:

2.先安裝libevent:

 代碼如下 複製代碼
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure –prefix=/usr
# make
# make install

3.測試libevent是否安裝成功:

 代碼如下 複製代碼
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r– 1 root root 454156 11 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11 12 17:38 libevent.so -> libevent-1.2.so.1.0.3

還不錯,都安裝上了。

4.安裝memcached,同時需要安裝中指定libevent的安裝位置:

 代碼如下 複製代碼
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –with-libevent=/usr
# make
# make install

如果中間出現報錯,請仔細檢查錯誤信息,按照錯誤信息來配置或者增加相應的庫或者路徑。
安裝完成後會把memcached放到 /usr/local/bin/memcached ,

5.測試是否成功安裝memcached:

 代碼如下 複製代碼
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11 12 17:39 /usr/local/bin/memcached-debug

安裝Memcache的PHP擴展

1.在http://pecl.php.net/package/memcache 選擇相應想要下載的memcache版本。

2.安裝PHP的memcache擴展

 代碼如下 複製代碼
 tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install
 代碼如下 複製代碼

3.上述安裝完後會有類似這樣的提示:

 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
4.把php.ini中的extension_dir = “./”修改爲

 extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”
5.添加一行來載入memcache擴展:extension=memcache.so

memcached的基本設置:
1.啓動Memcache的服務器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d選項是啓動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這裏是10MB,
-u是運行Memcache的用戶,我這裏是root,
-l是監聽的服務器IP地址,如果有多個地址的話,我這裏指定了服務器的IP地址192.168.0.200,
-p是設置Memcache監聽的端口,我這裏設置了12000,最好是1024以上的端口,
-c選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid,
2.如果要結束Memcache進程,執行:

# kill `cat /tmp/memcached.pid`
也可以啓動多個守護進程,不過端口不能重複。

 注:啓動memcache時若報  memcached: error while loading shared libraries: libevent-2.0.so.5: cannot o 錯誤的解決辦法

如果啓動時出現“memcached: error while loading shared libraries:libevent-2.0.so.5: cannot
open shared object file: No such file or directory”之類的信息,表示memcached 找不到
libevent 的位置
所以,請先使用whereis libevent 得到位置,然後連接到memcached 所尋找的路徑
首先查看,libevent 在哪裏
# whereis libevent
libevent: /usr/local/lib/libevent.la /usr/local/lib/libevent.so /usr/local/lib/libevent.a
然後,再看memcached 從哪裏找它
# LD_DEBUG=libs memcached -v 2>&1 > /dev/null | less
可以看到:是/usr/lib/libevent-2.0.so.5,所以,創建軟鏈
[root@localhost tools]# ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
再次啓動 www.111cn.net
關閉memcached :pkill memcached
檢查memcached是否正常運行
#ps aux | grep memcached
#telnet localhost 11211
….
stats

會顯示memcached的基本信息

安裝配置方法二

 代碼如下 複製代碼

wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz

tar -zxvf memcached-1.4.10.tar.gz
cd memcached-1.x.x

./configure  #到這一步報錯了如下:
#configure: error: libevent is required.  You can get it from http://www.monkey.org/~provos/libevent/
Memcache用到了libevent這個庫用於Socket的處理,所以還需要安裝libevent,libevent的最新版本是libevent-2.0。(如果你的系統已經安裝了libevent,可以不用安裝)
官網:http://www.monkey.org/~provos/libevent/

那只有先安libevent

 代碼如下 複製代碼

wget  http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz

tar zxvf  libevent-2.0.10-stable.tar.gz

./configure -prefix=/usr

make &&make install

測試libevent是否安裝成功

ls -al /usr/lib | grep libevent

出來一大列東西,說名都安裝好了

下面接着安裝memcache

 代碼如下 複製代碼

./configure –with-libevent=/usr
測試是否成功安裝memcached

 ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 203321 01-05 08:03 /usr/local/bin/memcached

說明安裝成功

memcached的基本設置:
1.啓動Memcache的服務器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d選項是啓動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這裏是10MB,
-u是運行Memcache的用戶,我這裏是root,
-l是監聽的服務器IP地址,如果有多個地址的話,我這裏指定了服務器的IP地址192.168.0.200,
-p是設置Memcache監聽的端口,我這裏設置了12000,最好是1024以上的端口,
-c選項是最大運行的併發連接數,默認是1024,我這裏設置了256,按照你服務器的負載量來設定,
-P是設置保存Memcache的pid文件,我這裏是保存在 /tmp/memcached.pid,

2.如果要結束Memcache進程,執行:

 代碼如下 複製代碼

# kill `cat /tmp/memcached.pid`

也可以啓動多個守護進程,不過端口不能重複。

3.重啓apache,service httpd restart或者nginx

安裝Memcache的PHP擴展
1.在http://pecl.php.net/package/memcache 選擇相應想要下載的memcache版本。
2.安裝PHP的memcache擴展

 代碼如下 複製代碼

wget http://pecl.php.net/get/memcache-2.2.6.tgz

tar vxzf memcache-2.2.6.tgz

cd memcache-2.2.6.tgz

/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install

3.上述安裝完後會有類似這樣的提示:

 代碼如下 複製代碼

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/

4.把php.ini中的extension_dir = “./”修改爲

 代碼如下 複製代碼

extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”

5.添加一行來載入memcache擴展:extension=memcache.so

Memcache環境測試:
運行下面的php文件,如果有輸出This is a test!,就表示環境搭建成功。開始領略Memcache的魅力把!

 代碼如下 複製代碼
< ?php
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章