memcached介紹:php
Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它經過在內存中緩存數據和對象來減小讀取數據庫的次數,從而提升動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,可是客戶端能夠用任何語言來編寫,並經過memcached協議與守護進程通訊。【摘自百度百科】web
memcache和memcached的區別 :數據庫
memcache是php的一個擴展,用於php管理memcached,php-memcache.dll。 apache
若是安裝了memcached不安裝擴展,那麼php沒法操控memcached,可是命令行使用起來沒有問題 windows
若是安裝了memcache擴展可是沒有安裝memcached服務,那麼這個就沒法使用 緩存
只有同時安裝了memcached服務和memcache擴展才能夠在PHP中使用memcached提升動態網站性能分佈式
1、安裝memcache的php擴展
memcached
1. php_memcache.dll 下載:性能
php_memcache-3.0.8-5.5-ts-vc11-x64測試
下載地址:http://pecl.php.net/package/memcache/3.0.8/windows
選擇[5.5 Thread Safe (TS) x64]這個版本的下載。
2. 把php_memcache.dll放到php的ext目錄:
例如:D:\WampServer\bin\php\php5.5.12\ext\php_memcache.dll
3. 打開 php.ini 文件:
個人php.ini的位置:D:\WampServer\bin\php\php5.5.12\php.ini
4. 在 php.ini上增長一行:
extension=php_memcache.dll
5. 重啓Wampserver的apache服務
6.查看phpinfo中是否有memcache,若是有說明成功。
2、安裝memcached
1. Memcached-win64 下載:
memcached-win64-1.4.4-14.zip
下載地址: 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
備註:若是此時報錯「failed to install service or service already installed」
解決辦法:
管理員身份安裝,首先找出cmd.exe的原文件【C:\Windows\System32/cmd.exe】
右擊以管理員身份運行,接下來就OK
4. 再輸入下面命令啓動:
D:\WampServer\bin\memcached>memcached.exe -d start
(以後屏幕無任何提示,可是在「任務管理器」中勾選「顯示全部用戶進程」,此時能夠看到memcached.exe進程正在運行)默認端口11211,外部訪問須要開放該端口,不然沒法成功鏈接。
5. memcached基本參數設置:
-p 監聽的端口
-l 鏈接的IP地址, 默認是本機
-d start 啓動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內存使用,單位MB。默認64MB
-M 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時鏈接數,默認是1024
-f 塊大小增加因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
-h 顯示幫助
設置參數時須要先中止memcached,而後用命令行設置
好比:c:\memcached> memcached.exe -m 1 -d start
6. 中止memcached:
D:\WampServer\bin\memcached>memcached.exe -d stop
7. 卸載memcached:
D:\WampServer\bin\memcached>memcached.exe -d uninstall
8.重啓電腦,而後查看php擴展裏是否勾有php_memcache,若是有說明成功。
9.php代碼測試
在www下寫一個test.php文件,內容以下:
<?php $memcache = memcache_connect('localhost', 11211); if ($memcache) { $memcache->set("str_key", "String to store in memcached"); $memcache->set("num_key", 123); $object = new StdClass; $object->attribute = 'test'; $memcache->set("obj_key", $object); $array = Array('assoc'=>123, 345, 567); $memcache->set("arr_key", $array); var_dump($memcache->get('str_key')); var_dump($memcache->get('num_key')); var_dump($memcache->get('obj_key')); } else { echo "Connection to memcached failed"; } ?>
而後運行一下,就知道結果了。。。