Memcached总结三:Memcached常用命令及使用说明
一、存儲(chǔ)命令
存儲(chǔ)命令的格式:
| 1 2 | <command name> <key> <flags> <exptime> <bytes> <data block> |
參數(shù)說(shuō)明如下:
| <command name> | set/add/replace |
| <key> | 查找關(guān)鍵字 |
| <flags> | 客戶機(jī)使用它存儲(chǔ)關(guān)于鍵值對(duì)的額外信息 |
| <exptime> | 該數(shù)據(jù)的存活時(shí)間,0表示永遠(yuǎn) |
| <bytes> | 存儲(chǔ)字節(jié)數(shù) |
| <data block> | 存儲(chǔ)的數(shù)據(jù)塊(可直接理解為key-value結(jié)構(gòu)中的value) |
1、添加
(1)、無(wú)論如何都存儲(chǔ)的set
這個(gè)set的命令在memcached中的使用頻率極高。set命令不但可以簡(jiǎn)單添加,如果set的key已經(jīng)存在,該命令可以更新該key所對(duì)應(yīng)的原來(lái)的數(shù)據(jù),也就是實(shí)現(xiàn)更新的作用。
可以通過(guò)“get 鍵名”的方式查看添加進(jìn)去的記錄:
如你所知,我們也可以通過(guò)delete命令刪除掉,然后重新添加。
(2)、只有數(shù)據(jù)不存在時(shí)進(jìn)行添加的add
(3)、只有數(shù)據(jù)存在時(shí)進(jìn)行替換的replace
?
2、刪除
可以看到,刪除已存在的鍵值和不存在的記錄可以返回不同的結(jié)果。
?
二、讀取命令
1、get
get命令的key可以表示一個(gè)或者多個(gè)鍵,鍵之間以空格隔開
2、gets
可以看到,gets命令比普通的get命令多返回了一個(gè)數(shù)字(上圖中為13)。這個(gè)數(shù)字可以檢查數(shù)據(jù)是否發(fā)生改變。當(dāng)key對(duì)應(yīng)的數(shù)據(jù)改變時(shí),這個(gè)多返回的數(shù)字也會(huì)改變。
3、cas
cas即checked and set的意思,只有當(dāng)最后一個(gè)參數(shù)和gets所獲取的參數(shù)匹配時(shí)才能存儲(chǔ),否則返回“EXISTS”。
?
三、狀態(tài)命令
1、stats
?
2、stats items
執(zhí)行stats items,可以看到STAT items行,如果memcached存儲(chǔ)內(nèi)容很多,那么這里也會(huì)列出很多的STAT items行。
?
3、stats cachedump slab_id limit_num
我們執(zhí)行stats cachedump 1 0 命令效果如下:
這里slab_id為1,是由2中的stats items返回的結(jié)果(STAT items后面的數(shù)字)決定的;limit_num看起來(lái)好像是返回多少條記錄,猜的一點(diǎn)不錯(cuò), 不過(guò)0表示顯示出所有記錄,而n(n>0)就表示顯示n條記錄,如果n超過(guò)該slab下的所有記錄,則結(jié)果和0返回的結(jié)果一致。
通過(guò)stats items、stats cachedump slab_id limit_num配合get命令可以遍歷memcached的記錄。
?
4、其他stats命令
如stats slabs,stats sizes,stats reset等等使用也比較常見(jiàn)。
?
四、其他常見(jiàn)命令
1、append
在現(xiàn)有的緩存數(shù)據(jù)后添加緩存數(shù)據(jù),如現(xiàn)有緩存的key不存在服務(wù)器響應(yīng)為NOT_STORED。
?
2、prepend
和append非常類似,但它的作用是在現(xiàn)有的緩存數(shù)據(jù)前添加緩存數(shù)據(jù)。
?
3、flush_all
該命令有一個(gè)可選的數(shù)字參數(shù)。它總是執(zhí)行成功,服務(wù)器會(huì)發(fā)送 “OK\r\n” 回應(yīng)。它的效果是使已經(jīng)存在的項(xiàng)目立即失效(缺省),或在指定的時(shí)間后。此后執(zhí)行取回命令,將不會(huì)有任何內(nèi)容返回(除非重新存儲(chǔ)同樣的鍵名)。 flush_all 實(shí)際上沒(méi)有立即釋放項(xiàng)目所占用的內(nèi)存,而是在隨后陸續(xù)有新的項(xiàng)目被儲(chǔ)存時(shí)執(zhí)行(這是由memcached的懶惰檢測(cè)和刪除機(jī)制決定的)。
flush_all 效果是它導(dǎo)致所有更新時(shí)間早于 flush_all 所設(shè)定時(shí)間的項(xiàng)目,在被執(zhí)行取回命令時(shí)命令被忽略。
4、其他命令
memcached還有很多命令,比如對(duì)于存儲(chǔ)為數(shù)字型的可以通過(guò)incr/decr命令進(jìn)行增減操作等等,這里只列出開發(fā)和運(yùn)維中經(jīng)常使用的命令,其他的不再一一舉例說(shuō)明。
4.1 incr和decr
總結(jié)
以上是生活随笔為你收集整理的Memcached总结三:Memcached常用命令及使用说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到好多亲戚在一起吃饭什么意思
- 下一篇: 梦到抓鱼而且抓了很多是什么意思