命令行用法:

telnet  127.0.0.1 11211  #远程连接到memcached

set key2 0 60 3          #插入一条数据,key值为key2 0是flags标记 60秒过期 大小3字节

abc                      #回车后输入数据,必须等于3字节,否则报错。

STORED                   #存储成功

get key2                 #查看key值

VALUE key2 0 3           #显示key值 标记和大小,没有显示过期时间

abc                      #显示key值的数据

END                      #结束

quit                     #退出


语法规则  

<command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n

注:\r\n在windows下是Enter键

a) <command name> 可以是”set”, “add”, “replace”。

“set”表示按照相应的<key>存储该数据,没有的时候增加,有的覆盖。

“add”表示按照相应的<key>添加该数据,但是如果该<key>已经存在则会操作失败。

“replace”表示按照相应的<key>替换数据,但是如果该<key>不存在则操作失败。

有时“add”,“replace”也会存储不上。

b) <key> 客户端需要保存数据的key。

c) <flags> 是一个16位的无符号的整数(以十进制的方式表示)。

该标志将和需要存储的数据一起存储,并在客户端get数据时返回。

客户可以将此标志用做特殊用途,此标志对服务器来说是不透明的。

d) <exptime> 过期的时间。

若为0表示存储的数据永远不过时(但可被服务器算法:LRU 等替换)。

如果非0(unix时间或者距离此时的秒数),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。

e) <bytes> 需要存储的字节数,当用户希望存储空数据时<bytes>可以为0

f) <data block>需要存储的内容,输入完成后,最后客户端需要加上”\r\n”(windows直接点击Enter)作为”命令头”的结束标志。


示例:

set key3 1 100 4

abcd

STORED

get key3

VALUE key3 1 4

abcd

END

replace key3 1 200 5

abcdx

STORED

get key3

VALUE key3 1 5

abcdx

END

delete key3

DELETED

get key3

END


补充:如果不知道key值,可以用命令都列出来在查看key数据

telnet 127.0.0.1 11211

首先列出所有keys


stats items


STAT items:7:number 1

STAT items:7:age 188

END

接下来基于列出的items id,本例中为7,第2个参数为列出的长度,0为全部列出

stats cachedump 7 0

ITEM Sess_sidsvpc1473t1np08qnkvhf6j2 [183 b; 1394527347 s]

END

上面的stats cachedump命令列出了我的session key,接下来就用get命令查找对应的session值

如:get Sess_sidsvpc1473t1np08qnkvhf6j2


课后答疑:

问:比如我线上有一个网站,我怎么把memcached用到网站中,直接在/etc/sysconfig/memcached  中的OPTIONS="" 填写对应的ip就行吗?

答:这个要在网站的代码里指定,不是我们的工作,开发人员来搞的。


问:实际情况下,什么时候要用到memcached 这些操作。

答:测试和查看数据时,大多时候都是用php访问和存储的。