memcached 使用筆記

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
  1. stats 命令用於返回統計信息例如 PID(進程號)、版本號、連接數等。
  2. 命令用於顯示各個 slab 中 item 的數目和存儲時長(最後一次訪問距離現在的秒數)。
  3. 命令用於顯示各個slab的信息,包括chunk的大小、數目、使用情況等。
  4. stats sizes 命令用於顯示所有item的大小和個數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章