(1)、無論如何都存儲的set
這個set的命令在memcached中的使用頻率極高。set命令不但可以簡單添加,如果set的key已經存在,該命令可以更新該key所對應的原來的數據,也就是實現更新的作用。
可以通過“get 鍵名”的方式查看添加進去的記錄:
如你所知,我們也可以通過delete命令刪除掉,然後重新添加。
(2)、只有數據不存在時進行添加的add
(3)、只有數據存在時進行替換的replace
可以看到,刪除已存在的鍵值和不存在的記錄可以返回不同的結果。
get命令的key可以表示一個或者多個鍵,鍵之間以空格隔開
可以看到,gets命令比普通的get命令多返回了一個數字(上圖中為13)。這個數字可以檢查數據是否發生改變。當key對應的數據改變時,這個多返回的數字也會改變。
cas即checked and set的意思,只有當最後一個參數和gets所獲取的參數匹配時才能存儲,否則返回“EXISTS”。
執行stats items,可以看到STAT items行,如果memcached存儲內容很多,那麼這裡也會列出很多的STAT items行。
我們執行stats cachedump 1 0 命令效果如下:
這裡slab_id為1,是由2中的stats items返回的結果(STAT items後面的數字)決定的;limit_num看起來好像是返回多少條記錄,猜的一點不錯, 不過0表示顯示出所有記錄,而n(n>0)就表示顯示n條記錄,如果n超過該slab下的所有記錄,則結果和0返回的結果一致。
通過stats items、stats cachedump slab_id limit_num配合get命令可以遍歷memcached的記錄。
如stats slabs,stats sizes,stats reset等等使用也比較常見。
在現有的緩存數據後添加緩存數據,如現有緩存的key不存在服務器響應為NOT_STORED。
和append非常類似,但它的作用是在現有的緩存數據前添加緩存數據。
該命令有一個可選的數字參數。它總是執行成功,服務器會發送 “OKrn” 回應。它的效果是使已經存在的項目立即失效(缺省),或在指定的時間後。此後執行取回命令,將不會有任何內容返回(除非重新存儲同樣的鍵名)。 flush_all 實際上沒有立即釋放項目所占用的內存,而是在隨後陸續有新的項目被儲存時執行(這是由memcached的懶惰檢測和刪除機制決定的)。
flush_all 效果是它導致