memcached指令的使用,在這裡我們最好了解一下指令的含義,對指令有一個大緻的了解,在了解的基礎上進行使用。這裡的命名是常用的crud指令的示範。
标準協定:Memcached所有的标準協定包含在對item執行指令過程中,一個item包含兩行:
第一行:Key Flags ExpirationTime Bytes
Key:Key 用于查找緩存值
Flags:一個32位的标志值,客戶機使用它存儲關于鍵值對的額外資訊(譬如使用者規定1 json 2 xml )使用者自己的業務标記使用場景 比如 我可以設定為1緩存的是網頁的熱點2緩存的是app的熱點。
Expiration time:在緩存中儲存鍵值對的時長(以秒為機關,0表示永遠)(伺服器挂了資料沒了 最多30天時間因為memcached沒有提供持久化的功能)
Bytes:在緩存中存儲的位元組數(與存儲的值不對應CLIENT_ERROR bad data chunk)存儲的位元組數一定要與實際存儲值得位元組數對應,否則無法存入報錯CLIENT_ERROR
bad data chunk
比如存入值3位元組則值bytes為3值例如ksf
第二行:Value:存儲的值(始終位于第二行)
noreply:可以在指令的第一行後面加入noreply,以避免在處理互動指令的時候,等待服
務端的傳回
向Memcached寫入值
指令有:set、add、replace、append、prepend、cas
首先進入我們的指令行
如下圖所示:
set:用于向緩存添加新的鍵值對,如果鍵已經存在,則之前的值将被替換(update)
示範:
add:僅當緩存中不存在鍵時,add指令才會向緩存中添加一個鍵值對,如果緩存中已經存在鍵,則之前的值将仍然保持,伺服器響應NOT_STORED(說白了就是存在不執行指令不存在添加)
replace:僅當鍵已經存在時,replace指令才會替換緩存中的鍵。如果緩存中不存在鍵,
伺服器響應NOT_STORED
append:是在現有緩存資料後面新增資料。如果key不存在,伺服器響應NOT_STORED
prepend:是在現有緩存資料前面新增資料。如果key不存在,伺服器響應NOT_STORED
cas(Check And Set ):檢查和更新,隻有從你讀取資料後,别人沒有更新這
個資料,才能夠正确儲存。就是版本控制,通常和gets配合使用必須等于目前的版本才能更新小于大于都不行.原子性操作
gets u1
查詢結果
VALUE u1 0 3 4
cas user 0 0 2 10(版本号)
aa
擷取資料的指令有:get 、gets
get用來擷取資料,gets擷取的是資料+版本号
删除資料的指令:delete
incr/decr指令:如果緩存資料中存儲的是數字形式的字元串,則可以使用
incr/decr 對資料進行遞增和遞減操作,操作後的值不會為負數