php的memcached

來看看memcached吧

一、簡介       

        首先說說memcached的由來吧,memcache由Danga Interactive這家公司開發,這家公司的口號是“We make cool stuff”。最早是爲了加速LiveJournal.com這個網站。這個網站可以支持超過2千萬個動態頁面,每天有超過1百萬的用戶訪問網站服務器和數據庫。

        memcached 是由c語言開發的,免費的,開源的,高性能的,分佈式內存對象緩存系統。

        memcached 適用於什麼場合呢:Memcached是“分佈式”的內存對象緩存系統,那麼就是說,那些不需要“分佈”的,不需要共享的,或者乾脆規模小到只有一臺服務器的應 用,memcached不會帶來任何好處,相反還會拖慢系統效率,因爲網絡連接同樣需要資源,即使是UNIX本地連接也一樣。 在我之前的測試數據中顯示,memcached本地讀寫速度要比直接PHP內存數組慢幾十倍,而APC、共享內存方式都和直接數組差不多。可見,如果只是 本地級緩存,使用memcached是非常不划算的。

      

       我們可以通過這個圖加強理解:

      

二、安裝步驟

      1、服務器端安裝

            我寫下我這裏的服務器環境供大家參考:

            lighttpd-1.4.28

            PHP 5.3.6            

            a、首先需要安裝libevent

                  下載tar包: wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz &

                   編譯安裝:                  

[plain] view plaincopy
  1. >tar -zxvf libevent-1.4.14b-stable.tar.gz  
  2. >cd libevent-1.4.14b-stable  
  3. >./configure //默認裝到/usr/lib/下  
  4. >make  
  5. >make install  

          b、 安裝memcache

                 下載地址:http://code.google.com/p/memcached/downloads/list

                  我下載的是:memcached-1.4.5.tar.gz

                  編譯安裝:

[plain] view plaincopy
  1. >tar -zxvf memcached-1.4.5.tar.gz  
  2. >cd memcached-1.4.5  
  3. >./configure  
  4. >make  
  5. >make install  
          好啦,至此,我們服務器端的memcached安裝完啦,簡單吧,就兩步。

       2、服務器端運行

            運行更簡單,你只需要在安裝memcached的目錄下鍵入:  

[plain] view plaincopy
  1. >./memcached -d -m 10 -u root -l 127.0.0.1 -p 11210 -c 256 -P /tmp/memcached.pid         
            下面偶解釋下這些參數的含義呀:            

           -d 以守護程序(daemon)方式運行 memcached。

            -u 指定用戶,如果當前爲 root 的話,需要使用此參數指定用戶。
            -m 設置 memcached 可以使用的內存大小,單位爲Mb,缺省是 64 MB;
             -l 設置監聽的 IP 地址,如果是本機的話,通常可以不設置此參數;
            -p 設置監聽的端口,默認爲 11211,所以也可以不設置此參數;(此處不設置,測試後發現無法連接)

            -c 設置最大運行的併發連接數,默認是1024

            -P 設置保存Memcache的pid文件

       3、簡單的操作memcached

             停止:

[plain] view plaincopy
  1. >kill `cat /tmp/memcached.pid`  
             (注:cat /tmp/memcached.pid) 列出memcached的進程號

            查看memcached監聽的ip和端口:

            

           

       4、客戶端安裝

             a、首先需要安裝libmemcached

                   爲啥需要libmemcached 呢,因爲在php中memcached的使用需要依賴於libmemcached,也就是說libmemcached提供了使用memcached的方法。

                   下載地址:https://launchpad.net/libmemcached/+download

                   我這裏下載的版本是:libmemcached-0.53.tar.gz

                   安裝編譯過程:                 

[plain] view plaincopy
  1. >tar -zxvf libmemcached-0.53.tar.gz  
  2. >cd libmemcached-0.53  
  3. >./configure  
  4. >make  
  5. >make install  
             

             b、安裝php的memcached擴展

                   下載:wget http://pecl.php.net/package/get/memcached-1.0.2.tgz

                   安裝:                  

[plain] view plaincopy
  1. >tar -zxvf memcached-1.0.2.tgz  
  2. >cd memcached-1.0.2  
  3. >./configure --with-php-config=/usr/local/php/bin/php-config  
  4. >make  
  5. >make install  
                  配置:                

                   在php.ini中新增配置內容:
               extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
               extension = memcache.so

                  從新啓動lighttpd

             5、運行和測試

                   a、命令行下:

                         ./php -m

                         你將會看到:memcached

                   b、執行程序:

                         

  1. <?php  
  2. $m = new Memcached();  
  3. $m->addServer('127.0.0.1', 11211);  
  4.   
  5. $m->set('foo', 200);  
  6. var_dump($m->get('foo'));  
  7. ?>   

                      得到結果:

                      int(200) 


好啦,至此memcached基本架設完成了,如果有啥問題或者有啥偶說的不對的歡迎來聯繫偶大笑



參考:

http://www.ibm.com/developerworks/cn/opensource/os-memcached/index.html

http://hi.baidu.com/yts_dayou/blog/item/8999c5f92ff2b403d8f9fdcd.html

在這裏非常感謝上面兩位微笑

發佈了12 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章