win7下64位系統memcache/memcached 安裝教程
memcache和memcached的區別
memcached技術,這個很容易理解這是memcached是記憶體快取,但是怎麼還有memcache呢?
其實很簡單,memcache是php的一個擴充套件,用於php管理memcached,php-memcache.dll。
(1)如果安裝了memcached不安裝擴充套件,那麼php無法操控memcached,但是命令列使用起來沒有問題
(2)如果安裝了memcache擴充套件但是沒有安裝memcached服務,那麼這個就無法使用
(3)只有同時安裝了memcached服務和memcache擴展才可以在PHP中使用memcached提高動態網站效能
2. 解壓下載後的檔案,把它放到一個目錄中,如D:\memcached。
3. 開啟cmd,進入memcached解壓後存放的目錄,執行命令:
memcached.exe -d install
4、測試是否安裝成功:
開啟cmd,進入memcached解壓後存放的目錄,執行命令:
memcached -h,若安裝成功,會出現如下介面:
5. 啟動memcached:
開啟cmd,進入memcached解壓後存放的目錄,執行命令
memcached -m30 -llcoalhost -p9000 -d start
這時memcached已經啟動,在工作管理員中可以看到這個程序:
6、memcache 的基本設定
Memcached 的基本設定 , 可以使用memcached -d ,而不需要memcached.exe -d
-p 監聽的埠-l 連線的IP地址,預設是本機-d start 啟動memcached服務-d restart 重啟memcached 服務-d stop|shutdown 關閉正在執行的memcached服務-d install 安裝memcached服務-d uninstall 解除安裝memcached 服務-u 以xx的身份執行(僅在root執行的時候有效)-m 最大記憶體使用,單位MB,預設是64MB,最大好像2G-M 記憶體耗盡時返回錯誤,而不是刪除項-c 最大同時連線數,預設是1024-f 塊大小增長因子,預設是1.25-n 最小分配空間 key+value+flags 預設是48-h 顯示幫助
7、連線memcache
開啟cmd,執行命令:
telnet 127.0.0.1 11211
即可連線Memcached。
注:
(1)win7中可能會出現“telnet’不是內部或外部命令”的錯誤,這是因為系統中預設沒有安裝telnet的緣故,可在“控制面板”->“程式”->“程式和功能”->“開啟或關閉Windows功能”中開啟“Telnet客戶端”
(2)在使用telnet 過程中,可能會出現:”該指令無效”,原因是沒有回車,
A. Telnet localhost 11211 【回車】
B. Ctrl + 】 打開回顯功能
C. 回車
二、memcached常用的控制指令
(1)常用指令如下
命令 |
描述 |
例子 |
get |
獲取一個key值 |
Get mykey |
set |
設定一個key值 如果key值存在,更新 如果key值不存在,新增 |
Set mykey 0 60 5 0(壓縮標識)60(時間,秒)5(字元長度) |
add |
增加一個key值 如果值存在是要失敗的 |
Add newkey 0 60 5 回車之後,輸入5個字元長度的資料 |
replace |
重寫一個存在的key值 如果這個key 不存在是要報錯的 |
Replace key 0 60 5 和set類似,卻別在於該變數不存在則不能儲存 |
append |
追加一個數據到存在的key值的後面 Hello helloworld |
Append key 0 60 15 |
Prepend |
追加一資料到存在的key值的前面 |
Prepend key 0 60 15 |
Incr |
給key值加數 只有當key值是數字才可以加減 |
Incr mykey 2 |
Decr |
給key值減數 只有當key值是數字才可以加減 |
Decr mykey 5 |
Delete |
刪除一個key |
Delete mykey |
Flush_all |
清除所有key |
Flush_all |
在一段時間(秒)後清除key |
Flush_all 900 |
|
stats |
Stats |
|
Stats slabs |
||
Stats malloc |
||
Stats detail |
||
Stats sizes |
||
Stats reset |
||
version |
Version |
|
Verbosity |
Verbosity |
|
quit |
quit |
(2)stats 的詳細解釋
Pid |
Memcache伺服器的程序ID |
Uptime |
伺服器已經執行的秒數 |
Time |
伺服器當前的unix時間戳 |
Version |
Memcache版本 |
Pointer_size |
當前作業系統的指標(32位系統一般是32bit) |
Rusage_user |
程序累計使用者時間 |
Rusage_system |
程序的累計系統時間 |
Curr_items |
伺服器當前儲存的items數量 |
Total_items |
從伺服器啟動後儲存的items總數量 |
Bytes |
當前伺服器儲存items佔用的位元組數 |
Curr_connections |
當前開啟著的連線數 |
Total_connections |
從伺服器啟動以後曾經開啟過的連線數 |
Connection_structures |
伺服器分類的連線構造數 |
Cmd_get |
Get命令(獲取)總請求次數 |
Cmd_set |
Set命令(儲存)總請求次數 |
Get_hits |
總命中次數 |
Get_misses |
總未命中次數 |
Evictions |
為獲取空閒記憶體而刪除的items 數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items) |
Bytes_read |
總讀取位元組數(請求位元組數) |
bytes_written |
總髮送位元組數(結果位元組數) |
limit_maxbytes |
分配給memcache的記憶體大小(位元組) |
threads |
當前執行緒數 |
Stats items 檢視變數的數量,以及變數的狀態Stats cachedump 1 1 [1:指的是壓縮時候的標記,後面的1表示的是檢視第一條,不是檢視第一條裡面的記錄]、Stats cachedump 1 0 [0:指的是檢視所有memcache中儲存的變數]
三、安裝memcache的php擴充套件:
下載地址:
http://windows.php.net/downloads/pecl/releases/memcache 進入相關下載頁面(下載相關版本)
(1)將下載的php_memcache.dll (根據php的相應版本)放到php的安裝目錄ext 下
(2)在php.ini 中配置 extension = php_memcache.dll 擴充套件
如果開啟phpinfo()頁面沒有看到memcached說明沒有安裝成功
下載的php_memcache.dll 一定要與當前的php版本一致才能安裝成功
若能打印出memcache中的資訊,則說明php的memcache擴充套件已安裝成功且能使用了!
注意:執行程式碼時若出現錯誤Fatal error: Class 'Memcache' not found,有可能是下載的 php_memcache.dll檔案與php版本不符,或者與系統位數不符。我的是64位系統,php版本是5.5.12,下載的是php_memcache-3.0.8-5.5-ts-vc11-x64.zip這個檔案。
(3)Memcache在php中的使用分為三部分
memcache擴充套件(php_memcache.dll),memcached擴充套件(php_memcached.dll),socket操作
①memcache擴充套件
下載相應版本的php_memcache.dll擴充套件,在php.ini中配置extension=php_memcache.dll
$mem = new Memcache;$mem ->connect('localhost' , 11211);//連線memcache快取伺服器 , pconnect()長連線,不會因為close而關閉
$mem ->add('demo' , 'hello world!' , false , 30);//插入資料
$demo = $mem ->get('demo');//取出資料
echo "demo的值是:".$demo."<br/>";
$mem->add('num' , 9 , false , 30);
$mem->increment('num' , 1);//將記憶體中的num 加1
$mem ->decrement('num' , 2);//將記憶體中的num減1 , 減的數字最小為0
$mem ->delete('num');//刪除記憶體中的num$mem ->flush();//清空記憶體中所有的變數
$mem ->set('a' , '劉德華' , false , 30);//修改一個變數,當變數不存在時,增加
echo $mem ->get('a');
$mem ->replace('b' ,'demored' , false , 30);//替換一個已經存在的變數,變數不存在不作任何操作
echo $mem->get('b');$mem ->close();//關閉memcache
②Memcached 擴充套件
下載相應版本的php_memcache.dll
③Socket
使用 memcache-client.php 來使用socket 網路程式設計來使用memcache , 用法和memcache擴充套件類似