程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 前端學PHP之MemCache,學PHP之MemCache

前端學PHP之MemCache,學PHP之MemCache

編輯:關於PHP編程

前端學PHP之MemCache,學PHP之MemCache


×
目錄
[1]作用 [2]安裝 [3]管理[4]命令

前面的話

  Memcache是一個高性能的分布式的內存對象緩存系統,通過在內存裡維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。本文將詳細介紹MemCache的內容

 

作用

  Memcache是danga的一個項目,最早是LiveJour  MemCachenal 服務的,最初為了加速 LiveJournal 訪問速度而開發的,後來被很多大型的網站采用

  Memcache是以守護程序方式運行於一個或多個服務器中,隨時會接收客戶端的連接和操作

  MemCache緩存系統最主要的就是為了提高動態網頁應用,分擔數據庫檢索的壓力。對於網站流量比較大的,可以使用memcache緩解數據庫的壓力,主要的焦點集中在以下兩個方面:1. 使用MemCache作為中間緩存層減少數據庫的壓力和2. MemCache分布式的應用

 

安裝

  1、下載軟件,解壓後,共以下三個文件

  2、安裝到windows服務,打開cmd命令行,進入memcached目錄,執行memcached -d install命令,安裝服務

  [注意]如果在沒有安裝過的情況下,出現"failed to install service or service already installed"錯誤,可能是cmd.exe需要用管理員身份運行

  3、啟動服務,執行memcached.exe -d start

  最後,在計算機->管理->服務中,可以找到memcached服務

 

管理

  memcache的端口號是11211,在啟動memcache服務後進行連接

  [注意]telnet在windows下默認是不開啟的,所以需要手動開啟

telnet 127.0.0.1 11211 

  進入memcache服務後,輸入stats命令,會出現如下所示

  stats命令的功能正如其名:轉儲所連接的memcached實例的當前統計數據。在下例中,執行 stats 命令顯示了關於當前 memcached 實例的信息

STAT pid 22459                             進程ID 
STAT uptime 1027046                        服務器運行秒數 
STAT time 1273043062                       服務器當前unix時間戳 
STAT version 1.4.4                         服務器版本 
STAT pointer_size 64                       操作系統字大小(這台服務器是64位的) 
STAT rusage_user 0.040000                  進程累計用戶時間 
STAT rusage_system 0.260000                進程累計系統時間 
STAT curr_connections 10                   當前打開連接數 
STAT total_connections 82                  曾打開的連接總數 
STAT connection_structures 13              服務器分配的連接結構數 
STAT cmd_get 54                            執行get命令總數 
STAT cmd_set 34                            執行set命令總數 
STAT cmd_flush 3                           指向flush_all命令總數 
STAT get_hits 9                            get命中次數 
STAT get_misses 45                         get未命中次數 
STAT delete_misses 5                       delete未命中次數 
STAT delete_hits 1                         delete命中次數 
STAT incr_misses 0                         incr未命中次數 
STAT incr_hits 0                           incr命中次數 
STAT decr_misses 0                         decr未命中次數 
STAT decr_hits 0                           decr命中次數 
STAT cas_misses 0                          cas未命中次數 
STAT cas_hits 0                            cas命中次數 
STAT cas_badval 0                          使用擦拭次數 
STAT auth_cmds 0 
STAT auth_errors 0 
STAT bytes_read 15785                      讀取字節總數 
STAT bytes_written 15222                   寫入字節總數 
STAT limit_maxbytes 1048576                分配的內存數(字節) 
STAT accepting_conns 1                     目前接受的鏈接數 
STAT listen_disabled_num 0                 
STAT threads 4                             線程數 
STAT conn_yields 0 
STAT bytes 0                               存儲item字節數 
STAT curr_items 0                          item個數 
STAT total_items 34                        item總數 
STAT evictions 0                           為獲取空間刪除item的總數 

  使用命令quit,就可以退出memcache操作界面了

 

命令

  通過使用memcache.exe -h可以查看memcache支持的命令

-p <num>   設置端口號(默認不設置為: 11211)
-U <num>   UDP監聽端口(默認: 11211, 0 時關閉) 
-l <ip_addr> 綁定地址(默認:所有都允許,無論內外網或者本機更換IP,有安全隱患,若設置為127.0.0.1就只能本機訪問)
-d   獨立進程運行
-d start 啟動memcached服務 
-d restart 重起memcached服務 
-d stop|shutdown 關閉正在運行的memcached服務 
-d install 安裝memcached服務 
-d uninstall 卸載memcached服務 
-u <username> 綁定使用指定用於運行進程<username>
-m <num>  允許最大內存用量,單位M (默認: 64 MB)
-P <file> 將PID寫入文件<file>,可以使得後邊進行快速進程終止, 需要與-d 一起使用
-M 內存耗盡時返回錯誤,而不是刪除項 
-c  最大同時連接數,默認是1024 
-f 塊大小增長因子,默認是1.25 
-n 最小分配空間,key+value+flags默認是48 
-h 顯示幫助

  一般地,memcache使用以下5個常用的命令

stats: 當前所有memcached服務器運行的狀態信息
add: 添加一個數據到服務器
set: 替換一個已經存在的數據,如果數據不存在,則和add命令相同。
get: 從服務器端提取指定的數據。
delete: 刪除指定的單個數據,如果要清除所有數據,可以使用flush_all指令

  關於memcache的錯誤提示主要有以下三個指令:

ERROR -- 普通錯誤信息,比如指令錯誤
CLIENT_ERROR <錯誤信息> -- 客戶端錯誤
SERVER_ERROR <錯誤信息> --服務器端錯誤

命令格式

  格式:<命令> <鍵> <標記> <有效期> <數據長度>

  命令:add(添加)、set(修改)、delete(刪除)、get(獲取)

  <鍵>-key:發送過來指令的key內容

  <標記>-flags:調用set指令保存數據時的flags標記

  有效期:數據在服務器上的有效期限,如果是0,則數據永遠有效,單位是秒

  數據的長度:block data 塊數據的長度,一般在這個長度結束以後下一行跟著block data數據內容

返回值

  發送完數據後,客戶端一般等待服務器端的返回,服務器端的返回值包括以下兩種:

STORED 數據保存成功
NOT_STORED 數據保存失敗,是因為服務器端這個數據key已經存在

  下面以add one 1 0 5為例,add表示添加數據,one表示鍵名,1表示標記,0表示有效期永久,5表示長度為5

  回車後輸入12345,再回車,表示鍵值為12345,並保存成功

  通過get one可以找到鍵名one的相關信息及鍵值

  然後通過set one將標記改為2

  再通過get one可以找到鍵名one的相關信息及鍵值

  通過delete one刪除one,再通過get one讀取one的信息時為空

  一般地,使用memcache並不常用遍歷操作,但可以模擬出遍歷的行為。首先,先存入5個數據

  然後,執行stats items命令,可以看到出現很多的items行。執行stats cachedump 1 0命令。這裡的1表示上面圖中items後面的數字,0標示顯示全部的數據,如果是1就標示只顯示1條

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved