首先客戶端向服務(wù)器按照如下格式發(fā)送命令行:
<command name> <key> <flags> <exptime> <bytes>\r\n
a) <command name> 可以是"set", "add", "replace"。
"set"表示按照相應(yīng)的<key>存儲該數(shù)據(jù)。
"add"表示按照相應(yīng)的<key>添加該數(shù)據(jù),但是如果該<key>已經(jīng)存在則會操作失敗。
"replace"表示按照相應(yīng)的<key>替換數(shù)據(jù),但是如果該<key>不存在則操作失敗
b) <key> 客戶端需要保存數(shù)據(jù)的key。
c) <flags> 是一個16位的無符號的整數(shù)(以十進制的方式表示)。該標志將和需要存儲的數(shù)據(jù)一起存儲,并在客戶端get數(shù)據(jù)時返回??蛻艨梢詫⒋藰酥居米鎏厥庥猛荆藰酥緦Ψ?wù)器來說是不透明的。
d) <exptime> 過期的時間。如果該數(shù)值為0表示存儲的數(shù)據(jù)永遠不過時(但是,該數(shù)據(jù)有可能被其他項所替換掉。因為服務(wù)器采用了LRU(最近最久沒有使用)的算法替換)。如果非0(unix時間或者距離此時的秒數(shù)),當過期后,服務(wù)器可以保證用戶得不到該數(shù)據(jù)(以服務(wù)器時間為標準)。
e) <bytes> 需要存儲的字節(jié)數(shù)(不包含最后的"\r\n"),當用戶希望存儲空數(shù)據(jù)時,<bytes>可以為0
f) 最后客戶端需要加上"\r\n"作為"命令頭"的結(jié)束標志。