php中memcache的配置與使用

一.memcache的簡介以及memcache與memcached的區別

        Memcache是danga.com的一個項目,最早是爲 LiveJournal 服務的,目前全世界不少人使用這個緩存項目來構建自己大負載的網站,來分擔數據庫的壓力。它可以應對任意多個連接,使用非阻塞的網絡IO。由於它的工作機制是在內存中開闢一塊空間,然後建立一個HashTable,Memcached管理這些HashTable,所以速度非常快。

       談談memcache和memcached的區別。簡單來說,memcache是項目名稱,而memcached則是它服務器端的主程序文件名,知道這一點就行了。

 二.memcache的windows環境下的安裝

      A.安裝memcache的php擴展

              1.php_memcache.dll下載:

                 下載地址:php_memcache.zip http://www.2cto.com/uploadfile/2012/0713/20120713110240777.zip
               2.把php_memcache.dll放到php的ext目錄:

                  例如:D:\WampServer\bin\php\php5.3.11\ext\php_memcache.dll

               3. 打開 php.ini 文件:

                   我的php.ini的位置:D:\WampServer\bin\php\php5.3.11\php.ini

               4. 在 php.ini上增加一行:

                   extension=php_memcache.dll

               5. 重啓Wampserver的apache服務

      B.安裝memcached

                 1. Memcached-win64 下載:

                    http://www.2cto.com/uploadfile/2012/0713/20120713110308123.zip

                 2. 解壓放某個盤下面,比如:

                    D:\WampServer\bin\memcached\memcached.exe

                 3. 在終端(也即cmd命令界面)下輸入以下命令安裝windows服務:

                    D:\WampServer\bin\memcached>memcached.exe -d install

                 4. 再輸入下面命令啓動:

                     D:\WampServer\bin\memcached>memcached.exe -d start

                 5.打開phpinfo()頁面,查看是否安裝成功

       C.一些我自己在安裝過程中出現的問題以及解決辦法

                  下面爲測試代碼:

<?php 

$memcache = new Memcache; 
$memcache->connect('localhost', 11211) or die ("Could not connect"); 

$version = $memcache->getVersion(); 
echo "Server's version: ".$version."<br/>\n"; 

$tmp_object = new stdClass; 
$tmp_object->str_attr = 'test'; 
$tmp_object->int_attr = 123; 

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); 
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n"; 

$get_result = $memcache->get('key'); 
echo "Data from the cache:<br/>\n"; 

var_dump($get_result); 

?> 


如果輸出結果如下則正確:

Server's version: 1.4.5 
Store data in the cache (data will expire in 10 seconds) 
Data from the cache: 
object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) } 


最常見的問題:提示not found class memcache。如果出現這個問題,先不要慌,回頭檢查一下配置。如果連phpinfo()裏面都沒有打印出memcache的話,那說明你的安裝過程出現了錯誤,按照上面的過程一步一步重新操作。如果實在不行,那麼php_memcache.dll的版本去下載一個與自己所用PHP相同版本的,我在安裝的時候,發現點擊wamp直接進去的php.ini和在wamp目錄下的php.ini是路徑不同的兩個文件,可能是因爲當時配置是另選的路徑,這個時候最好是兩個都添加上extension=php_memcache.dll這句話,說了這麼多,這裏提醒一下就是php.ini的路徑要找對。

 

三.memcache的基本語法

下面就列舉出一些memcache的常見用法:

memcache函數所有的方法列表如下:
Memcache::add – 添加一個值,如果已經存在,則返回false
Memcache::addServer – 添加一個可供使用的服務器地址
Memcache::close – 關閉一個Memcache對象
Memcache::connect – 創建一個Memcache對象
memcache_debug – 控制調試功能
Memcache::decrement – 對保存的某個key中的值進行減法操作
Memcache::delete – 刪除一個key值
Memcache::flush – 清除所有緩存的數據
Memcache::get – 獲取一個key值
Memcache::getExtendedStats – 獲取進程池中所有進程的運行系統統計
Memcache::getServerStatus – 獲取運行服務器的參數
Memcache::getStats – 返回服務器的一些運行統計信息
Memcache::getVersion – 返回運行的Memcache的版本信息
Memcache::increment – 對保存的某個key中的值進行加法操作
Memcache::pconnect – 創建一個Memcache的持久連接對象
Memcache::replace -對一個已有的key進行覆寫操作
Memcache::set – 添加一個值,如果已經存在,則覆寫
Memcache::setCompressThreshold – 對大於某一大小的數據進行壓縮
Memcache::setServerParams – 在運行時修改服務器的參數

關於這些方法的詳細用法就不在次列舉了,下面會提供專門講解的鏈接,有興趣的同學可以點擊進去看一看。

 

參考鏈接:http://www.jb51.net/article/48745.htm

                    http://blog.163.com/sun_jian_zhang/blog/static/1878040412013102610415184/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章