1. 程式人生 > >win7下64位系統memcache/memcached 安裝教程

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提高動態網站效能

一、安裝過程:1、下載memcache的windows64版本

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擴充套件類似