一.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/