您的位置:首页 > 数据库 > Memcache

Memcached之存储命令(2)

2015-08-25 11:51 627 查看
telnet连接到Memcached服务器以后,可以使用很多命令,比如:get,gets,set,touch,delete,add,replace,append,prepend,incr,decr,cas,flush_all,version,quit等等

Memcached存储命令的格式:

<command name> <key> <flags> <exptime> <bytes>
<data block>


参数说明如下:
<command name>set/add/replace
<key>查找关键字(key的最大长度为250字节)
<flags>客户机使用它存储关于键值对的额外信息
<exptime>该数据的存活时间,0表示永远
<bytes>存储字节数
<data block>存储的数据块(默认情况下最大为1M,即一个Slab的大小)

添加命令

set

使用set不管什么情况都会把数据存到Memcached,即set命令既有添加的作用也有更新的作用。

set fish 7 0 8
12312312
STORED


add

只有当Key在Memcached不存在的时候才会添加。

//key不存在的情况下
add fish 0 0 7
1234567
STORED
//key已经存在的情况下
add fish 0 0 7
1234567
NOT_STORED


replace

只有当Key存在的时候才替换

//Key存在的情况下,replace成功
replace fish 0 0 8
12345678
STORED
<pre name="code" class="java">//Key不存在的情况下,replace不成功
replace fish1 0 0 8 12345678NOT_STORED



touch

更新Memcached中Key对应的值的过期时间。

其实Memcached最大过期时间是30天。

//key:exp不存在
touch exp 2000
NOT_FOUND
//key:fish存在
touch fish 2000
TOUCHED

prepend

在一个已经存在的数据值(value)上追加,是在数据值的前面追加。

//Key:fish2不存在,不会存储
prepend fish2 0 0 2
12
NOT_STORED
//set Key:fish2
set fish2 0 0 2
12
STORED
//在Key:fish2的前面追加字符串“12”
prepend fish2 0 0 2
12
STORED
//查看值
get fish2
VALUE fish2 0 4
1212
END


append

在一个已经存在的数据值(value)上追加,是在数据值的后面追加。

incr

计数命令,可以在原来已经存在的数字上进行累加求和,计算并存储新的数值。

//key:fish3设置值为“b”
set fish3  0 0 1
b
STORED
//在key:fish3的基础上加2,因为fish3是字符类型,所以报错。
incr fish3 2
CLIENT_ERROR cannot increment or decrement non-numeric value
//修改fish3的值为2
replace fish3 0 0 1
2
STORED
//fish3加2
incr fish3 2
4


decr

计数命令,可以在原来已经存在的数字上进行减法计算,计算并存储新的数值。

删除命令

delete

删除指定key的值

//不存在
delete fish1
NOT_FOUND
//存在
delete fish
DELETED

获取命令

get

get命令的Key可以表示一个或者多个键,键之间以空格隔开

get fish fish1
VALUE fish 0 7
1234567
VALUE fish1 0 1
1
END

gets

gets和get一样,Key可以表示一个或者多个键,键之间以空格隔开。唯一的区别是gets会打印出各个Key变化的版本。

gets fish fish1
VALUE fish 0 7 7
1234567
VALUE fish1 0 1 8
1
END


cas

cas即checked and set的意思,当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。

cas fish 0 0 2 8
12
EXISTS
//VALUE fish 0 7 7,索引存储成功。
cas fish 0 0 2 7
22
STORED


其他

flush_all

flush_all
OK


version

version
VERSION 1.4.22


telnet退不出去怎么办?
很简单先Ctrl+],然后quit退出telnet

^]
telnet> quit
Connection closed.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: