Memcached 其他存储命令

add命令

Memcached add 命令用于将value(数据值)存储在指定的key(键)中。

如果add 的key已经存在值,则不会更新数据,之前的值将仍然保持不变,并且memcached响应NOT_STORED。

语法:

add key flags exptime bytes [noreply]
value

各参数以及响应码含义与set参数相同。

实例:

set newOne 0 300 10
thisisnewb
STORED
get newOne
VALUE newOne 0 10
thisisnewb
END

replace命令

replace命令用于替换已存在的key(键)的value(数据值),如果key不存在,则替换失败,memcached响应NOT_STROED。

语法:

replace key flags exptime bytes [noreply]
value

各参数以及相应码与set参数相同。

实例:

set mybaby 0 900 8
dangdang
STORED
get mybaby
VALUE mybaby 0 8
dangdang
END
replace mybaby 0 900 6
haofan
STORED
get mybaby
VALUE mybaby 0 6
haofan
END

append命令

append命令用于向已存在key(键)的value(数据值)后面追加数据。

语法:

append key flags exptime bytes [noreply]
value

参数与set参数意义相同。

实例:

设置变量keytoaa值为lxgap,绕后向其value后面追加asp,最后得到他的value值为lxgapasp

set keytoaa 0 600 5
lxgap
STORED
append keytoaa 0 600 3
asp
STORED
get keytoaa
VALUE keytoaa 0 8
lxgapasp
END

输出信息说明:

STORED:保存成功后输出。

NOT_STORED:该键在Memcached上不存在。

CLIENT_ERROR:执行错误。

prepend命令

prepend命令用于向i存在key(键)的value(数据值)前面追加数据。

语法:

prepend key flags exptime bytes [noreply]
value

参数意义同前。

实例:

set say 0 900 5
laodi
STORED
get say
VALUE say 0 5
laodi
END
prepend say 0 900 6
Hello 
STORED
get say
VALUE say 0 11
Hello laodi

CAS命令

CAS(Chedk-And-Set 或 Compare-And_Swap)命令用于执行一个“检查并设置”的操作,它仅在当前客户端最后一次取值后,该key对应的值没有被其他客户端修改的情况下,才能够将值写入。检查是通过cas_token参数进行的,这个参数是Memcach指定给已经存在的元素的一个唯一的64位值。

语法:

cas key flags exptime bytes unique_cas_token [noreply]
value

参数说明:

key:键值key-value-结构中的key,用于查找缓存值。

flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息。

exptime:在缓存中保存键值对的时间长度(以秒为单位,0表示永远)

bytes:在缓存中存储的字节数

unique_cas_token:通过gets命令获取的一个唯一的64位值

noreply(可选):该参数告知服务器不需要返回数据

value:村醋的值(始终位于第二行)(可直接理解为key-value结构中的value)

实例:

要在Memcached上使用CAS命令,需要从Memcached服务商通过gets命令获取令牌(token)

gets命令的功能类似于基本的get命令,两个命令之间的差异在于,gets返回的信息稍微多一些,64位的整型值非常像名称/值对的“版本”标识符。

如果没有设置唯一令牌,则cas命令执行错误。

如果key不存在,执行失败。

cas tem 0 900 5
ERROR                           #没有token

cas tem 0 900 5 2            #键tem不存在
redis
NOT_FOUND

set tem 0 900 4            #设置键值
hehe
STORED

gets tem                        #获取token
VALUE tem 0 4 16
hehe
END

cas tem 0 900 5 16            #执行cas命令
testC
STORED

get tem
VALUE tem 0 5
testC
END    

 

posted @ 2016-08-08 14:04  GoQC  阅读(217)  评论(0编辑  收藏  举报