Memcached經常使用命令及使用說明


1、存儲命令

存儲命令的格式:緩存

<command name> <key> <flags> <exptime> <bytes>服務器

<data block>app

參數說明以下:運維


<command name>set/add/replacememcached

<key>查找關鍵字google

<flags>客戶機使用它存儲關於鍵值對的額外信息spa

<exptime>該數據的存活時間,0表示永遠code

<bytes>存儲字節數orm

<data block>存儲的數據塊(可直接理解爲key-value結構中的value)內存

一、添加


(1)、不管如何都存儲的set

set

這個set的命令在memcached中的使用頻率極高。set命令不但能夠簡單添加,若是set的key已經存在,該命令能夠更新該key所對應的原來的數據,也就是實現更新的做用。

能夠經過「get 鍵名」的方式查看添加進去的記錄:

set_get

如你所知,咱們也能夠經過delete命令刪除掉,而後從新添加。

delete

(2)、只有數據不存在時進行添加的add

add

(3)、只有數據存在時進行替換的replace

replace

二、刪除

delete

能夠看到,刪除已存在的鍵值和不存在的記錄能夠返回不一樣的結果。

2、讀取命令

一、get

get命令的key能夠表示一個或者多個鍵,鍵之間以空格隔開

get

二、gets

gets

能夠看到,gets命令比普通的get命令多返回了一個數字(上圖中爲13)。這個數字能夠檢查數據是否發生改變。當key對應的數據改變時,這個多返回的數字也會改變。

三、cas

cas即checked and set的意思,只有當最後一個參數和gets所獲取的參數匹配時才能存儲,不然返回「EXISTS」。


cas

3、狀態命令

一、stats

stats

二、stats items

statsitems

執行stats items,能夠看到STAT items行,若是memcached存儲內容不少,那麼這裏也會列出不少的STAT items行。

 

三、stats cachedump slab_id limit_num

咱們執行stats cachedump 1 0 命令效果以下:

statscachedump

這裏slab_id爲1,是由2中的stats items返回的結果(STAT items後面的數字)決定的;limit_num看起來好像是返回多少條記錄,猜的一點不錯, 不過0表示顯示出全部記錄,而n(n>0)就表示顯示n條記錄,若是n超過該slab下的全部記錄,則結果和0返回的結果一致。

statscachedump1

經過stats items、stats cachedump slab_id limit_num配合get命令能夠遍歷memcached的記錄。

四、其餘stats命令

如stats slabs,stats sizes,stats reset等等使用也比較常見。


statsother

4、其餘常見命令

一、append

append

在現有的緩存數據添加緩存數據,如現有緩存的key不存在服務器響應爲NOT_STORED。

 

二、prepend

和append很是相似,但它的做用是在現有的緩存數據添加緩存數據。

prepend

三、flush_all

flush_all

該命令有一個可選的數字參數。它老是執行成功,服務器會發送 「OK\r\n」 迴應。它的效果是使已經存在的項目當即失效(缺省),或在指定的時間後。此後執行取回命令,將不會有任何內容返回(除非從新存儲一樣的鍵名)。 flush_all 實際上沒有當即釋放項目所佔用的內存,而是在隨後陸續有新的項目被儲存時執行(這是由memcached的懶惰檢測和刪除機制決定的)。

flush_all 效果是它致使全部更新時間早於 flush_all 所設定時間的項目,在被執行取回命令時命令被忽略。

四、其餘命令

memcached還有不少命令,好比對於存儲爲數字型的能夠經過incr/decr命令進行增減操做等等,這裏只列出開發和運維中常常使用的命令,其餘的再也不一一舉例說明。


參考:http://code.google.com/p/memcached/wiki/NewCommands

相關文章
相關標籤/搜索