1. 程式人生 > >在telnet下操作memcache詳解(操作命令詳解)

在telnet下操作memcache詳解(操作命令詳解)

在定位問題、測試等時候經常需要對memcache的資料進行一些操作,但是其本身沒有自帶的客戶端,所以只能通過telnet來進行操作。

通過telnet連線memcache。

複製程式碼程式碼如下:
telnet 127.0.0.1 11211

memcache寫入操作

telnet寫入memcache命令格式

複製程式碼程式碼如下:
 <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n

引數詳解:

1.<command name> 可以是”set”, “add”, “replace”。

set:<key>不存在時新增,<key>存在時覆蓋。
add:<key>不存在時新增,<key>存在時則會操作失敗。
replace:<key>不存在時新增失敗,<key>存在時替換資料

2.<key> 儲存資料的key

3.<flags> 是一個16位的無符號的整數(以十進位制的方式表示)。

該標誌將和需要儲存的資料一起儲存,並在客戶端get資料時返回。
客戶可以將此標誌用做特殊用途,此標誌對伺服器來說是透明的。

4.<exptime> 過期的時間。

0表示儲存的資料永遠不過時(但可被伺服器演算法:LRU 等替換)。
非0(unix時間),當過期後,伺服器可以保證使用者得不到該資料(以伺服器時間為標準)。

5.<bytes> 需要儲存的位元組數(不包含最後的”\r\n”),當用戶希望儲存空資料時,可以為0

6.最後客戶端需要加上”\r\n”作為”命令頭”的結束標誌。

7.<data block>\r\n

緊接著”命令頭”結束之後就要傳送資料塊(即希望儲存的資料內容),最後加上”\r\n”作為此次通訊的結束。


telnet響應命令

當以上資料傳送結束之後,伺服器將返回一個應答。可能有如下的情況:

1.STORED\r\n:表示儲存成功

2.NOT_STORED\r\n: 表示儲存失敗,但是該失敗不是由於錯誤。
> 通常這是由於”add”或者”replace”命令本身的要求所引起的,或者該項在刪除佇列之中。

示例

複製程式碼程式碼如下:
set key 32 0 10\r\n
helloworld\r\n
STORED\r\n

獲取Key&Value

獲取命令格式

複製程式碼程式碼如下:
get <key>*\r\n

引數詳解:
1.<key>*: 表示一個或者多個key(以空格分開)
2.\r\n:命令結束

響應結果

伺服器端將返回0個或者多個的資料項。每個資料項都是由一個文字行和一個數據塊組成。當所有的資料項都接收完畢將收到END\r\n每一項的資料結構:

複製程式碼程式碼如下:
VALUE <key> <flags> <bytes>\r\n
<data block>\r\n

引數詳解:
1.<key> 希望得到儲存資料的key
2.<falg> 傳送set命令時設定的標誌項
3.<bytes>傳送資料塊的長度(不包含”\r\n”)
4.\r\n 文字行的結束標誌
5.<data block> 希望接收的資料項。
6.\r\n 接收一個數據項的結束標誌。

PS:如果有些key出現在get命令列中但沒有返回相應的資料,這意味著伺服器中不存在改項,可能是超時了,或者被刪除了.

示例

複製程式碼程式碼如下:
get key
VALUE key 32 10
helloworld
END

刪除KeyValue:

複製程式碼程式碼如下: delete <key> <time>\r\n
引數詳解:
1.<key> 需要被刪除資料的key
2.<time> 客戶端希望伺服器將該資料刪除的時間(unix時間或者從現在開始的秒數)
3.\r\n命令頭的結束

檢查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 : 最大允許使用的記憶體量,位元組

清空統計資料:

複製程式碼程式碼如下:
stats reset

清空所有鍵值

複製程式碼程式碼如下:
flush_all

注:flush並不會將items刪除,只是將所有的items標記為expired,因此這時memcache依舊佔用所有記憶體。

退出

複製程式碼程式碼如下:
quit\r\n


其他命令

1.顯示各個slab的資訊,包括chunk的大小、數目、使用情況等

複製程式碼程式碼如下: stats slabs

2.顯示各個slab中item的數目和最老item的年齡(最後一次訪問距離現在的秒數)

複製程式碼程式碼如下: stats items

3.設定或者顯示詳細操作記錄

複製程式碼程式碼如下: stats detail [on|off|dump]

引數為on,開啟詳細操作記錄
引數為off,關閉詳細操作記錄
引數為dump,顯示詳細操作記錄(每一個鍵值get、set、hit、del的次數)

4.顯示某個slab中的前limit_num個key列表

複製程式碼程式碼如下: stats cachedump slab_id limit_num
顯示格式如下:
複製程式碼程式碼如下: ITEM <key_name> [ <value_length> b; <expire_time|access_time> s]

<key_name>:鍵名
<value_length>:值長度(單位位元組)
<expire_time|access_time>:memcached 1.2.2及以前版本顯示的是 訪問時間(timestamp)


相關推薦

telnet操作memcache操作命令

在定位問題、測試等時候經常需要對memcache的資料進行一些操作,但是其本身沒有自帶的客戶端,所以只能通過telnet來進行操作。 通過telnet連線memcache。 複製程式碼程式碼如下: telnet 127.0.0.1 11211 memcach

靜態連結串列插入和刪除操作C語言程式碼實現

本節主要講解靜態連結串列的插入和刪除操作,有關靜態連結串列的詳細講解請閱讀《靜態連結串列及C語言實現》一文。 在講解靜態連結串列的插入和刪除操作之前,我們假設有如下的靜態連結串列: 圖中,array[0] 用作備用連結串列的頭結點,array[1] 用作存放資料的連結串列的頭結點,array[0]

Java 原子操作AtomicInteger、AtomicIntegerArray等

當程式更新一個變數時,如果多執行緒同時更新這個變數,可能得到期望之外的值,比如變數i=1,A執行緒更新i+1,B執行緒也更新i+1,經過兩個執行緒操作之後可能i不等於3,而是等於2。因為A和B執行緒在更新變數i的時候拿到的i都是1,這就是執行緒不安全的更新操作,通常我們會使

JDK 原子操作AtomicInteger、AtomicIntegerArray等

當程式更新一個變數時,如果多執行緒同時更新這個變數,可能得到期望之外的值,比如變數i=1,A執行緒更新i+1,B執行緒也更新i+1,經過兩個執行緒操作之後可能i不等於3,而是等於2。因為A和B執行緒在更新變數i的時候拿到的i都是1,這就是執行緒不安全的更新操作,通常我們會使用

連結串列各類操作講得非常詳細

原文連結:http://blog.csdn.net/hackbuteer1/article/details/6591486/    連結串列概述    連結串列是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。連結串列有一

Linuxfork機制以PHP為例

考:https://blog.csdn.net/jason314/article/details/5640969 1.fork簡介 一個程序,包括程式碼、資料和分配給程序的資源。fork()函式通過系統呼叫建立一個與原來程序幾乎完全相同的程序,也就是兩個程序可以做完全相同的事,但如果初始引數

caffe(無CUDA,caffe在CPU執行)+Ubuntu14.0.4---適合於初學者配置

本部落格是CPU的執行,GPU的一直等有時間在寫。要是想安裝gpu的版本的,可參考:先付上一些成功安裝的部落格的吧 1.http://blog.csdn.net/xierhacker/article/details/53035989 2.http://blog.csd

linuxNginx配置檔案(nginx.conf)配置設定windows用phpstudy整合

linux備份nginx.conf檔案舉例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在程序列表裡 面找master程序,它的編號就是主程序號。 ps -ef | g

Javascript設計模式與開發實踐二:策略模式 http://www.jianshu.com/p/ef53781f6ef2

的人 思想 ram gis pan pro msg have 改變 上一章我們介紹了單例模式及JavaScript惰性單例模式應用這一次我主要介紹策略模式策略模式是定義一系列的算法,把它們一個個封裝起來,並且讓他們可以互相替換。比方說在現實中很多時候也有很多途徑到達同一個

SSH免登陸ESXI讓操作更便捷安全幾種常用工具

esxi vmware ssh工具 免登陸 授權訪問通常在企業環境中,管理員很少去機房在物理機面前進行操作,大部分管理員喜歡遠程管理主機,這樣既方便又高效。在windows上我們使用遠程桌面,在Linux上則使用SSH來連接。ESXi就是一個以Linux為核心改寫的操作系統,因此ESXi中也保留了SSH

Linux的壓縮zip,壓縮unzip命令及實例

cnblogs http .com 服務器 file html htm unzip inux http://www.cnblogs.com/zdz8207/p/3765604.html Linux下的壓縮解壓縮命令詳解及實例 實例:壓縮服務器上當前目錄的內容為xx

js操作DOM對象節點的增刪改

pre charset char body creat title 替換 type script <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"&

制作自己的Setup.exe-程序打包基於Visual Studio 2015

忘記 圖片 安裝文件 for int .com create rtc gis 序言   第一次打包程序,新手,遂作筆記如下,以供自己忘記細節時翻看,也供同樣新手或有需要者以為參考。不敢班門弄斧,大神若是誤入還請莫要見笑。   以下所述基於Visual Studio 2015

Python輸出hello world各行命令

類型 路由 app session ssi 文件類型 reload env 定位 創建main.py文件並粘貼下面代碼 點擊右鍵運行Debug ‘main‘後,下方的Debug窗口會出現ImportError: No module named ‘bottle‘這樣的提示,

Linux基本常用命令之ls含date,cal

Linux基礎【1】顯示日期的指令:date示例:(1)#date +%Y/%m/%d結果:2018/02/27(2)#date +%H:%M結果:10:48【2】顯示日歷的指令:cal格式:cal [month] [year]示例:(1)#cal 2 2018(2)#cal 13 2018結果:cal:il

Android熱修復技術原理最新最全版本

總結 核心 桌面圖標 實時 開源 穩定性 安卓 定義 check 本文框架 什麽是熱修復? 熱修復框架分類 技術原理及特點 Tinker框架解析 各框架對比圖 總結 ??通過閱讀本文,你會對熱修復技術有更深的認知,本文會列出各類框架的優缺點以及技術原理,文章末尾簡單描述

marquee標簽屬性跑馬燈文字效果

del mouseover 鼠標 AR 百分數 lte 距離 BE 100% <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT

MapReduce編程模型基於Windows平臺Eclipse

lib read 找到 lin @override ext logs 設置 otf 本文基於Windows平臺Eclipse,以使用MapReduce編程模型統計文本文件中相同單詞的個數來詳述了整個編程流程及需要註意的地方。不當之處還請留言指出。 前期準備 hadoop集群

搜索系統中所有以.repo結尾的文件並刪除find命令及xargs命令

搜索系統 輸入 最大的 tin fin pro 多個 term 傳遞參數 find / -name *.repo | xargs rm –rf //搜索以.repo結尾的文件並刪除 find命令詳解 精細查找文件或目錄d find [ 查找範圍 ]

xxx.launch檔案部落格學習筆記

ROS筆記(一)xxx.launch檔案詳解 .launch檔案是ROS中用於同時啟動多個節點的重要檔案,在大型的ROS專案中使用頻繁,所以掌握其主要元素與屬性對ROS系統的應用至關重要: launch標籤(元素)說明 launch拓展說明 parameter說明