memcached 使用笔记

来源:互联网 发布:数控车用什么软件编程 编辑:程序博客网 时间:2024/06/02 03:33

memcached命令介绍

memcached作为高速运行的分布式缓存服务器,具有以下的特点。
- 协议简单
- 基于libevent的事件处理
- 内置内存存储方式
- memcached不互相通信的分布式

1.set命令

set key flags exptime bytes [noreply] value

key 表示缓存的索引,必须唯一,否则会覆盖

flags 提供额外的存储信息地方

exptime 是过期时间,如果是0,表示永远生效

bytes 是value的字节长度,一定要设置正确的长度,否则在命令行模式中,会提示错误.

[noreplay] 表示服务端必须回复信息

value 是key对应的值,在命令行中,必须放在第二行

以上就是set命令的使用方法.

2.add命令

add key flags exptime bytes [noreply]value

add与set方便不同的是,如果add的key已经在memcache中存在,则不提示not_stored,如果add的key不在memcache中,则将其添加到memcache中.

add,类似于增量写入, 这个操作会重置key的生命周期

3.replace命令

replace key flags exptime bytes [noreply]value

参数与set一致,差异的地方是,如果key存在于memcache中,则替换这个key,并返回stored,如果key不存在域memcache中,则返回not_stored.

这个操作会重置key的生命周期

4.append命令

append key flags exptime bytes [noreply]value

用户向key的value后边添加数据,这个key必须存在于memcache中,否则返回not_stored.

如果key原来的值是”hi”, 追加的值是”memcache”, 那么这个key在追加数据之后变成了”himemcache”.

5.prepend命令

prepend key flags exptime bytes [noreply]value

向key的前边追加数据,与append用法一致,只是添加的位置不一样.

6.cas命令

cas key flags exptime bytes unique_cas_token [noreply]value

与上边的命令相比,唯一不同的是最后多了一个参数:unique_cas_token
这个参数是gets命令的返回结果中,最后一个字段值,

cas是一个比较命令,下边是cas的返回状态码解析:

  • STORED:保存成功后输出。
  • ERROR:保存出错或语法错误。
  • EXISTS:在最后一次取值后另外一个用户也在更新该数据。
  • NOT_FOUND:Memcached 服务上不存在该键值。

当key值被修改后,gets返回的令牌会将会发生变化,当你使用gets命令获取了某个key的令牌环之后,然后你把这个值传入到cas命令的unique_cas_token参数中,cas会去比较你传入的这个令牌环是不是现在key的令牌环,如果没有人再去修改key值,那么这个key的令牌环就不会发生变化,则cas就会修改key的值,如果有另一个人在你使用cas命令之前,修改了key的值,那么key的令牌环就已经变化了,那么你再去使用之前你获取到的令牌环当做cas的参数去修改key的值,则会提示EXISTS,表示你的令牌环已经过去了,key的值将不会被修改.

7.get命令

get keyget key1 key2 key3

上边是获取一个key和获取多个key的命令.

返回信息如下:

get world#结果:VALUE world 0 5valueEND

8.gets命令

gets keygets key1 key2 key3

与get方法使用起来很想,唯一不同的是gets比get多返回一个参数,即令牌环

返回值如下:

gets world#返回值:VALUE world 0 5 11valueEND

上边的11 便是你获取到的world的令牌环,一旦world被修改,令牌环就发生变化.

9.delete命令

delete key [noreply]

删除key的信息

10.incr/decr命令

这两个命令,就是对key键的值进行加减

incr key increment_valuedecr key decrement_value

key的值必须是numeric,否则不能进行这个操作

上边的命令,就是在key原来只的基础上加上或减去increment_value

11.flush_all命令

flush_all [time] [noreply]

用户操作key->value值信息,time是个延时值,以秒为单位.

12.统计相关命令

- stats- stats items- stats slabs- stats sizes
  1. stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。
  2. 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。
  3. 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。
  4. stats sizes 命令用于显示所有item的大小和个数
0 0
原创粉丝点击