memcached命令介紹
memcached作爲高速運行的分佈式緩存服務器,具有以下的特點。
- 協議簡單
- 基於libevent的事件處理
- 內置內存存儲方式
- memcached不互相通信的分佈式
1.set命令
set key flags exptime bytes [noreply]
value
key 表示緩存的索引,必須唯一,否則會覆蓋
flags 提供額外的存儲信息地方
exptime 是過期時間,如果是0,表示永遠生效
bytes 是value的字節長度,一定要設置正確的長度,否則在命令行模式中,會提示錯誤.
[noreplay] 表示服務端必須回覆信息
value 是key對應的值,在命令行中,必須放在第二行
以上就是set命令的使用方法.
2.add命令
add key flags exptime bytes [noreply]
value
add與set方便不同的是,如果add的key已經在memcache中存在,則不提示not_stored,如果add的key不在memcache中,則將其添加到memcache中.
add,類似於增量寫入, 這個操作會重置key的生命週期
3.replace命令
replace key flags exptime bytes [noreply]
value
參數與set一致,差異的地方是,如果key存在於memcache中,則替換這個key,並返回stored,如果key不存在域memcache中,則返回not_stored.
這個操作會重置key的生命週期
4.append命令
append key flags exptime bytes [noreply]
value
用戶向key的value後邊添加數據,這個key必須存在於memcache中,否則返回not_stored.
如果key原來的值是”hi”, 追加的值是”memcache”, 那麼這個key在追加數據之後變成了”himemcache”.
5.prepend命令
prepend key flags exptime bytes [noreply]
value
向key的前邊追加數據,與append用法一致,只是添加的位置不一樣.
6.cas命令
cas key flags exptime bytes unique_cas_token [noreply]
value
與上邊的命令相比,唯一不同的是最後多了一個參數:unique_cas_token
這個參數是gets命令的返回結果中,最後一個字段值,
cas是一個比較命令,下邊是cas的返回狀態碼解析:
- STORED:保存成功後輸出。
- ERROR:保存出錯或語法錯誤。
- EXISTS:在最後一次取值後另外一個用戶也在更新該數據。
- NOT_FOUND:Memcached 服務上不存在該鍵值。
當key值被修改後,gets返回的令牌會將會發生變化,當你使用gets命令獲取了某個key的令牌環之後,然後你把這個值傳入到cas命令的unique_cas_token參數中,cas會去比較你傳入的這個令牌環是不是現在key的令牌環,如果沒有人再去修改key值,那麼這個key的令牌環就不會發生變化,則cas就會修改key的值,如果有另一個人在你使用cas命令之前,修改了key的值,那麼key的令牌環就已經變化了,那麼你再去使用之前你獲取到的令牌環當做cas的參數去修改key的值,則會提示EXISTS,表示你的令牌環已經過去了,key的值將不會被修改.
7.get命令
get key
get key1 key2 key3
上邊是獲取一個key和獲取多個key的命令.
返回信息如下:
get world
#結果:
VALUE world 0 5
value
END
8.gets命令
gets key
gets key1 key2 key3
與get方法使用起來很想,唯一不同的是gets比get多返回一個參數,即令牌環
返回值如下:
gets world
#返回值:
VALUE world 0 5 11
value
END
上邊的11 便是你獲取到的world的令牌環,一旦world被修改,令牌環就發生變化.
9.delete命令
delete key [noreply]
刪除key的信息
10.incr/decr命令
這兩個命令,就是對key鍵的值進行加減
incr key increment_value
decr key decrement_value
key的值必須是numeric,否則不能進行這個操作
上邊的命令,就是在key原來只的基礎上加上或減去increment_value
11.flush_all命令
flush_all [time] [noreply]
用戶操作key->value值信息,time是個延時值,以秒爲單位.
12.統計相關命令
- stats
- stats items
- stats slabs
- stats sizes
- stats 命令用於返回統計信息例如 PID(進程號)、版本號、連接數等。
- 命令用於顯示各個 slab 中 item 的數目和存儲時長(最後一次訪問距離現在的秒數)。
- 命令用於顯示各個slab的信息,包括chunk的大小、數目、使用情況等。
- stats sizes 命令用於顯示所有item的大小和個數