memcached(十七)协议命令格式
memcached的管理使用的是telnet
登录服务器 telnet 127.0.0.1 11211
<command name> <key> <flags> <exptime> <bytes> [noreply]\r\n
cas <key> <flags> <exptime> <bytes> <cas unique> [noreply]\r\n
<command name> : "set", "add", "replace", "append" or "prepend"
set:“存储这个数据”,一般是更新已有的缓存,也可以用于新增。
add:新增缓存,缓存中不存在新增的KEY。
replace:替换现有的缓存,缓存中一定已经存储KEY
append:在现有的缓存数据后添加缓存数据。
prepend:在现有的缓存数据前添加缓存数据
cas:check and set操作,存储缓存,前提是在check后没有其它人修改过数据,用于多客户端同时设置相同的KEY时的原子操作。
<key>:缓存的KEY
<flags>:最开始是16位的无符号整数,现在的版本一般是32位。用户客户端存储自定义标记数据。
<exptime>:缓存过期时间。0表示永不过期,可以是Unix time或当前服务器时间的偏移量(秒为单位),如果你想设置当前时间后1分钟过期,则此参数为60。
<bytes>:缓存数据的长度
<cas unique>:unique 64-bit value of an existing entry,cas操作的时候回传的值,用于服务器端判断缓存是否改变。
[noreply]:服务器不响应处理结果。
<data block>\r\n: 缓存数据块,\r\n结束
"STORED\r\n":表示存储成功
"NOT_STORED\r\n":表示未存储,但并不是错误。如:对已经有的KEY使用add
"EXISTS\r\n":表示使用cas命令设置数据未成功,在你最后一次获取数据后,数据已经被其它人修改。
"NOT_FOUND\r\n":表示使用cas存储数据时候,key不存储