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
    當以上數據發送結束之后,服務器將返回一個應答??赡苡腥缦碌那闆r:
    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 17:50
下一篇 2015-05-20 15:35

相關推薦

  • LVM創建實例及相關注釋

    LVM創建    pv—>vg—->lv—->快照 創建前準備了四塊1g硬盤分別為:sdb  sdc sdd  sde,并分別給四塊盤劃分了1G的空間,并指定了分區系統類型為8e(即Linux LVM) [root@localhost ~]# fdisk /dev/…

    Linux干貨 2015-06-08
  • 馬哥教育網絡班22期+第2周課程練習

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     Linux上文件管理類命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir (1)pwd:顯示當前路徑,打印工作目錄(Print Working Directory) (2)ls:查看指定目錄下的內容 參數 說明 -a 列舉目錄中的…

    Linux干貨 2016-08-29
  • systemd

    systemd 啟動流程:POST -> BIOS -> MBR bootloader -> kernel 臨時根 -> 根文件系統 -> init init 能夠管理、控制init進程的模塊,就是init系統 能夠讓系統在用戶預定義的級別下運行 設備管理器: sysvinit : CentOS 5 第一個廣泛應用的init系統…

    Linux干貨 2017-05-21
  • loganalyzer——日志分析工具

    Loganalyzer是一款syslog日志和其他網絡事件數據的Web前端。它提供了對日志的簡單瀏覽、搜索、基本分析和一些圖表報告的功能。數據可以從數據庫或一般的syslog文本文件中獲取,所以LogAnalyzer不需要改變現有的記錄架構?;诋斍暗娜罩緮祿?,它可以處理syslog日志消息,Windows事件日志記錄,支持故障排除,使用戶能夠快速查找日志數…

    Linux干貨 2016-10-18
  • Linux風水學

    Linux風水學童 有的沒的說一說 說一個,到一個。想起哪個說哪個,說起哪個都不錯。 對于接觸過一點點Linux的風水學童的我來說,還在苦背天地玄黃,宇宙洪荒。雖然不懂是干什么的,但是心里總有個聲音告訴我,這些鬼畫符肯定有用??傆幸惶煳夷艹蔀橐粋€合格的Linux風水師,去某個員外家里施展堪輿之術被奉為上賓。 Linux流派大概   相對于目前的流派…

    2017-07-18
  • 第四周:/etc/passwd、/etc/group文件熟悉及配合grep使用正則表達式

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

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