Memcache命令:
    
    
      在linux下:
    
  
    # /usr/local/bin/memcached -d -m 128 -u root -l 192.168.0.10 -p 12121 -c 256 -P /tmp/memcached.pid
  
  在window下:
    d:\App_Serv\memcached\memcached.exe -d RunService -l  127.0.0.1 -p 11211 -m 500
  
  
    
    
    
    
      1、啟動Memcache 常用參數
    
  
-p <num> 監聽的TCP端口(默認: 11211)
-U <num> UDP監聽端口 (默認: 11211, 0 時關閉)
-d 以守護進程方式運行
-u <username> 運行運行 Memcached的賬戶 非root用戶
-m <num> 最大的內存使用單位是MB 默認是64MB
-c <num> 軟連接數量默認是1024
-v 輸出警告和錯誤信息
-vv 打印客戶端的請求和返回信息
-h 打印幫助信息
-i 打印memcached和libevent的版權信息
-l <ip_addr> 綁定地址 (默認:所有都允許,無論內外網或者本機更換IP,有安全隱患,若設置為127.0.0.1就只能本機訪問)
-P <file> 將PID寫入文件<file>,這樣可以使得后邊進行快速進程終止, 需要與 -d 一起使用
在windows下注冊為服務后運行:
    sc.exe create Memcached  binpath= “d:\App_Serv\memcached\memcached.exe -d RunService -p 11211 -m 500″  start= auto
  
  
    net start Memcached
  
  
    2、連接:telnet 127.0.0.1 11211
    
    不要說不會用這個?
  
    3、寫入memcache
    
    <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
    
    a) <command name> 可以是”set”, “add”, “replace”。
    
    “set”表示按照相應的<key>存儲該數據,沒有的時候增加,有的覆蓋。
    
    “add”表示按照相應的<key>添加該數據,但是如果該<key>已經存在則會操作失敗。
    
    “replace”表示按照相應的<key>替換數據,但是如果該<key>不存在則操作失敗
  
b) <key> 客戶端需要保存數據的key。
    c) <flags> 是一個16位的無符號的整數(以十進制的方式表示)。
    
    該標志將和需要存儲的數據一起存儲,并在客戶端get數據時返回。
    
    客戶可以將此標志用做特殊用途,此標志對服務器來說是不透明的。
  
    d) <exptime> 過期的時間。
    
    若為0表示存儲的數據永遠不過時(但可被服務器算法:LRU 等替換)。
    
    如果非0(unix時間或者距離此時的秒數),當過期后,服務器可以保證用戶得不到該數據(以服務器時間為標準)。
  
e) <bytes> 需要存儲的字節數(不包含最后的”\r\n”),當用戶希望存儲空數據時,<bytes>可以為0
    f) 最后客戶端需要加上”\r\n”作為”命令頭”的結束標志。
    
    <data block>\r\n
  
緊接著”命令頭”結束之后就要發送數據塊(即希望存儲的數據內容),最后加上”\r\n”作為此次通訊的結束。
    結果響應:reply
    
    當以上數據發送結束之后,服務器將返回一個應答。可能有如下的情況:
  
    a) “STORED\r\n”:表示存儲成功
    
    b) “NOT_STORED\r\n” : 表示存儲失敗,但是該失敗不是由于錯誤。
    
    通常這是由于”add”或者”replace”命令本身的要求所引起的,或者該項在刪除隊列之中。
  
    如: set key 33 0 4\r\n
    
    ffff\r\n
  
    4、獲取/檢查KeyValue
    
    get <key>*\r\n
    
    a) <key>* 表示一個或者多個key(以空格分開)
    
    b) “\r\n” 命令頭的結束
  
    結果響應:reply
    
    服務器端將返回0個或者多個的數據項。每個數據項都是由一個文本行和一個數據塊組成。當所有的數據項都接收完畢將收到”END\r\n”
    
    每一項的數據結構:
    
    VALUE <key> <flags> <bytes>\r\n
    
    <data block>\r\n
  
    a) <key> 希望得到存儲數據的key
    
    b) <falg> 發送set命令時設置的標志項
    
    c) <bytes> 發送數據塊的長度(不包含”\r\n”)
    
    d) “\r\n” 文本行的結束標志
    
    e) <data block> 希望接收的數據項。
    
    f) “\r\n” 接收一個數據項的結束標志。
  
    如果有些key出現在get命令行中但是沒有返回相應的數據,這意味著服務器中不存在這些項,這些項過時了,或者被刪除了
    
    如:get aa
    
    VALUE aa 33 4
    
    ffff
    
    END
  
    5、刪除KeyValue:
    
    delete <key> <time>\r\n
  
    a) <key> 需要被刪除數據的key
    
    b) <time> 客戶端希望服務器將該數據刪除的時間(unix時間或者從現在開始的秒數)
    
    c) “\r\n” 命令頭的結束
  
    6、檢查Memcache服務器狀態:
    
    stats\r\n
    
    在這里可以看到memcache的獲取次數,當前連接數,寫入次數,已經命中率等;
  
    pid : 進程id
    
    uptime :總的運行時間,秒數
    
    time : 當前時間
    
    version : 版本號
    
    ……
    
    curr_items : 當前緩存中的KeyValue數量
    
    total_items : 曾經總共經過緩存的KeyValue數量
    
    bytes : 所有的緩存使用的內存量
    
    curr_connections 當前連接數
    
    ….
    
    cmd_get : 總獲取次數
    
    cmd_set : 總的寫入次數
    
    get_hits : 總的命中次數
    
    miss_hits :? 獲取失敗次數
    
    …..
    
    bytes_read : 總共讀取的流量字節數
    
    bytes_written : 總的寫入流量字節
    
    limit_maxbytes : 最大允許使用的內存量,字節
  
    7、高級緩存細節查看方法:
    
    stats reset
    
    清空統計數據
  
    stats malloc
    
    顯示內存分配數據
  
    stats cachedump slab_id limit_num
    
    顯示某個slab中的前limit_num個key列表,顯示格式如下
    
    ITEM key_name [ value_length b; expire_time|access_time s]
    
    其中,memcached 1.2.2及以前版本顯示的是? 訪問時間(timestamp)
    
    1.2.4以上版本,包括1.2.4顯示 過期時間(timestamp)
    
    如果是永不過期的key,expire_time會顯示為服務器啟動的時間
  
    stats cachedump 7 2
    
    ITEM copy_test1 [250 b; 1207795754 s]
    
    ITEM copy_test [248 b; 1207793649 s]
  
    stats slabs
    
    顯示各個slab的信息,包括chunk的大小、數目、使用情況等
  
    stats items
    
    顯示各個slab中item的數目和最老item的年齡(最后一次訪問距離現在的秒數)
  
    stats detail [on|off|dump]
    
    設置或者顯示詳細操作記錄
  
    參數為on,打開詳細操作記錄
    
    參數為off,關閉詳細操作記錄
    
    參數為dump,顯示詳細操作記錄(每一個鍵值get、set、hit、del的次數)
  
    8、清空所有鍵值
    
    flush_all
    
    注:flush并不會將items刪除,只是將所有的items標記為expired,因此這時memcache依舊占用所有內存。
  
    8、退出
    
    quit\r\n
  
=============================================================================
    
      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 的基本命令 ( 當 memcached 啟動后 用于對 memcached 管理的數據和本身運行狀態相關的命令 ) :
| Command | Description | Example | 
| get | Reads a value | get mykey | 
| set | Set a key unconditionally | set mykey 0 60 5 | 
| add | Add a new key | add newkey 0 60 5 | 
| replace | Overwrite existing key | replace key 0 60 5 | 
| append | Append data to existing key | append key 0 60 15 | 
| prepend | Prepend data to existing key | prepend key 0 60 15 | 
| incr | Increments numerical key value by given number | incr mykey 2 | 
| decr | Decrements numerical key value by given number | decr mykey 5 | 
| delete | Deletes an existing key | delete mykey | 
| flush_all | Invalidate specific items immediately | flush_all | 
| Invalidate all items in n seconds | flush_all 900 | |
| stats | Prints general statistics | stats | 
| Prints memory statistics | stats slabs | |
| Prints memory statistics | stats malloc | |
| Print higher level allocation statistics | stats items | |
| ? | stats detail | |
| ? | stats sizes | |
| Resets statistics | stats reset | |
| version | Prints server version. | version | 
| verbosity | Increases log level | verbosity | 
| quit | Terminate telnet session | quit | 
?
對查看的信息的關鍵字中英文對照表
| 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 | 當前線程數 | 
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
 
					微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
 
					

