Memcached命令

Memcache 的命令行用法:

1、啟動Memcache 常用參數

   memcached 1.4.3  
    -p <num>      設置端口號(默認不設置為: 11211)  
    -U <num>      UDP監聽端口 (默認: 11211, 0 時關閉)  
    -l <ip_addr>  綁定地址 (默認:所有都允許,無論內外網或者本機更換IP,有安全隱患,若設置為127.0.0.1就只能本機訪問)  
    -d            獨立進程運行
    -u <username> 綁定使用指定用于運行進程 <username>  
    -m <num>      允許最大內存用量,單位M (默認: 64 MB)  
    -P <file>     將PID寫入文件<file>,這樣可以使得后邊進行快速進程終止, 需要與 -d 一起使用
    如:
    在linux下:./usr/local/bin/memcached -d -u jb-mc -l 192.168.1.197 -m 2048 -p 12121
    在window下:d:\App_Serv\memcached\memcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500
    在windows下注冊為服務后運行:
    sc.exe create jb-Memcached binpath= "d:\App_Serv\memcached\memcached.exe -d RunService -p 11211 -m 500" start= auto
    net start jb-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(回車)

     顯示:stored

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依舊占用所有內存。

9、退出

   quit\r\n 

轉自:http://blog.csdn.net/hguisu/article/details/7353793

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/3068

(0)
s19930811s19930811
上一篇 2015-05-18
下一篇 2015-05-20

相關推薦

  • centos7配置bindDNS解析服務

    首先來概述一下 通俗一點理解呢,DNS就是把域名轉換成IP的一種服務(反向則是IP轉換成域名).以方便人們的記憶,就好比記住一個代表性的英文要比記住電話號碼快得多,通常我們將這種服務稱之為解析.現在一般公網都有萬網 騰訊云這些機構,DNS這一塊我們不需要負責.但是在現在企業的內部網則就需要我們來搭建DNS服務器了.本次采用的bind工具進行域名的解析。 1.…

    Linux干貨 2018-03-26
  • 第三周作業

    1、列出1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。[root@localhost ~]# who | cut -d ‘ ‘ -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。[root@localhost ~]# who | tail -1 | export &am…

    Linux干貨 2017-12-16
  • Linux之磁盤管理

    Linux之磁盤管理       linux系統中, 一切都是文件, 而這些文件都是存儲在磁盤中, 因此對于磁盤的管理是非常重要的, Linux磁盤管理的好壞, 直接關系到整個系統的性能問題, 本文主要介紹了磁盤結構, 分區類型, 管理分區, 管理文件系統, 掛載設備, 管理虛擬內存這幾大項的內容.    &…

    Linux干貨 2016-08-29
  • zabbix+grafana ——小于初始,大于勤拙@時雨擾擾,幾多悵惘,幾多憂思

    前邊一點小總結,純屬回顧啟動大腦所用,畢竟we are no computer! 一個監控系統必須包括4個功能 1)采集數據 2)存儲數據 3)故障報警 4)數據可視化顯示 zabbix作為一個監控系統,當讓也就包含了以上四種zabbix-server-mysql,zabbix-agent,zabbix-get,zabbix-sender,zabbix-we…

    2017-10-09
  • Linux終端類型

        終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。在早期計算機系統中,由于計算機主機昂貴,因此一個主機(IBM大型計算機)一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成。在個人計算機時代,個人計算機可以運行稱為…

    Linux干貨 2016-10-13
欧美性久久久久