memcache與memcached介紹及安裝配置


也許大家一看到Memcache和Memcached會有點暈,這兩者有什么關系又有什么區別呢,下面先給大家說下Memcached,Memcached是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。

想必大家也聽說過Memcached,就是一個緩存系統,我們可以把一些經常要查詢的數據放到緩存中,避免每次要使用的時候都去查詢數據庫。這樣既能大幅的加快數據讀取速度,而且也降低了服務器的壓力,所以一般大訪問量的網站都會用的Memcached。

Memcached與Memcache的區別

至於Memcached和Memcache的區別,其實很簡單,一個是服務端,一個是客戶端,就像mysql一樣,我們在命令行里輸入各種sql語句就能查詢到需要的結果,這就是客戶端,客戶端接收我們輸入的命令從服務端查詢,mysqld就是服務端,就是響應客戶端的額后台進程,在這里也一樣Memcached是服務端,而Memcache就是客戶端。 

所以我們要使用Memcached,首先在服務端安裝好Memcached,並運行Memcached,然后安裝Memcache就能使用了。 

在這里我們會詳細的講解在Linux下安裝Memcached服務端,並講解通過PHP擴展安裝Memcache,以便我們直接通過PHP來測試Memcached。 

 

由於Memcache用到了libevent這個庫用於Socket的處理,所以還需要安裝libevent

1、安裝libeven

1 [root@lys2 src]# wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
2 [root@lys2 src]# tar zxvf libevent-1.4.13-stable.tar.gz
3 [root@lys2 src]# cd libevent-1.4.13-stable
4 [root@lys2 libevent-1.4.13-stable]# ./configure
5 [root@lys2 libevent-1.4.13-stable]# make && make install
1 [root@lys2 libevent-1.4.13-stable]# rpm -qa libevent
2 libevent-1.4.13-4.el6.x86_64

2、安裝memcached

1 [root@lys2 src]# wget http://memcached.org/files/memcached-1.4.32.tar.gz
2 [root@lys2 src]# tar zxvf memcached-1.4.32.tar.gz
3 [root@lys2 src]# cd memcached-1.4.32
4 [root@lys2 memcached-1.4.32]# ./configure
5 [root@lys2 memcached-1.4.32]# make && make install

安裝完成后,memcached的默認目錄為/usr/local/bin/memcached

1 [root@lys2 memcached-1.4.32]# ll /usr/local/bin/memcached 
2 -rwxr-xr-x 1 root root 446185 10月 16 10:03 /usr/local/bin/memcached

3、啟動memcached

1 [root@lys2 memcached-1.4.32]# /usr/local/bin/memcached -m 32m -p 11211 -d -u root -P /var/run/memcached.pid -c 256 -vv

參數說明:

-d選項是作為守護進程在后台運行 
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB, 
-u是運行Memcache的用戶,我這里是root, 
-l是監聽的服務器IP地址,如果有多個地址的話 
-p是設置Memcache監聽的端口,我這里設置了12000,最好是1024以上的端口, 
-c選項是最大運行的並發連接數,默認是1024,我這里設置了256,按照你服務器的負載量來設定, 
-P是設置保存Memcache的pid文件
-vv是以very vrebose模式啟動,將調試信息和錯誤輸出到控制台
1 [root@lys2 memcached-1.4.32]# netstat -unlpt | grep 11211
2 tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      10449/memcached     
3 tcp        0      0 :::11211                    :::*                        LISTEN      10449/memcached     
4 udp        0      0 0.0.0.0:11211               0.0.0.0:*                               10449/memcached     
5 udp        0      0 :::11211                    :::*                                    10449/memcached     

關閉memcached的命令為:

1 [root@lys2 memcached-1.4.32]# kill `cat /var/run/memcached.pid`

4、安裝memcache的php擴展

 1 [root@lys2 src]# wget http://pecl.php.net/get/memcache-2.2.7.tgz
 2 [root@lys2 src]# tar zxvf memcache-2.2.7.tgz
 3 [root@lys2 src]# cd memcache-2.2.7
 4 [root@lys2 memcache-2.2.7]# /usr/local/php/bin/phpize
 5 Configuring for:
 6 PHP Api Version:         20131106
 7 Zend Module Api No:      20131226
 8 Zend Extension Api No:   220131226
 9 [root@lys2 memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config 
10 [root@lys2 memcache-2.2.7]# make && make install

安裝完成后會有以下提示

1 Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

修改php.ini文件,把php.ini中的extension_dir='./' 修改為extension_dir='/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/'

添加如下一行代碼來載入memcache擴展:

1 extension=memcache.so

5、測試memcache的php擴展是否安裝成功

運行下面的php代碼,如果輸出“hello world”,就表示環境搭建成功

<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('test','hello world',0,12);
$val = $mem->get('test');
echo $val;
?>
1 [root@lys2 data]# /usr/local/php/bin/php test.php 
2 hello world

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM