get username
END
set username 0 0 6
ryanxu
STORED
get username
VALUE username 0 6
ryanxu
END
append username 0 0 6
kokoxu
STORED
get username
VALUE username 0 12
ryanxukokoxu
END
在现有的缓存数据后添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED。
5. prepend命令
与append命令类似,这个命令是在已存在的数据前加入新数据。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
set username 0 0 6
ryanxu
STORED
get username
VALUE username 0 6
ryanxu
END
prepend username 0 0 6
kokoxu
STORED
get username
VALUE username 0 12
kokoxuryanxu
END
6. cas命令
cas即checked and set的意思,如果从上次读取到现在没有更新,那么存入数据,处理更新竞争很有用。
只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
gets newuser
VALUE newuser 0 6 8
kokoxu
END
cas newuser 0 0 6 9
aaaaaa
EXISTS
cas newuser 0 0 6 8
aaaaaa
STORED
get newuser
VALUE newuser 0 6
aaaaaa
END
二、读取命令
1. get命令
get命令的key可以表示一个或者多个键,键之间以空格隔开
示例:
1
2
3
4
5
6
7
8
9
10
get newuser
VALUE newuser 0 6
aaaaaa
END
get key2 key4
VALUE key2 0 2
22
VALUE key4 0 4
4444
END
get newuser
VALUE newuser 0 6
aaaaaa
END
gets newuser
VALUE newuser 0 6 9
aaaaaa
END
replace newuser 0 0 6
kkkkkk
STORED
get newuser
VALUE newuser 0 6
kkkkkk
END
gets newuser
VALUE newuser 0 6 10
kkkkkk
END
三、删除命令
删除命令的格式:
delete <key> <time>
参数说明如下:
<key>
需要被删除数据的key
<time>
客户端希望服务器将该数据删除的时间(unix时间或者从现在开始的秒数)
示例:
1
2
3
4
delete newuser
DELETED
delete newuser
NOT_FOUND
可以看到,删除已存在的键值和不存在的记录可以返回不同的结果。
四、incr/decr命令
Increment and Decrement. 如果item是以64位整型存储的,那么可以使用incr和decr命令修改那个数。
如果数据不存在,那么将返回失败。
命令格式为:
Incr <key> <value>
或
Decr <key> <value>
参数说明:
<key>
数据项的key
<value>
用户希望增加/减少的数据的数值。该数值是一个32位十进制的无符号整形变量。
注意:
a) 如果一个数据项的有效期被设置为0,这时使用decr命令是无法减少数据。
b) 如果要执行 incr key -1 的操作不会有什么问题,结果和你希望的一样。但是,执行decr -1时的结果一定会让你觉得很意外,因为它的结果无论key的数据是什么结果的都是0.原因是:在这两个命令的执行过程中都是吧-1当做一个无符号的整形处理的。
c) 执行decr命令时数据的长度不会随之而减小,而是在返回数据的后面填补空格。但是执行incr命令越界后会自动的增加数据的位数。
STAT pid 22459 进程ID
STAT uptime 1027046 服务器运行秒数
STAT time 1273043062 服务器当前unix时间戳
STAT version 1.4.4 服务器版本
STAT pointer_size 64 操作系统字大小(这台服务器是64位的)
STAT rusage_user 0.040000 进程累计用户时间
STAT rusage_system 0.260000 进程累计系统时间
STAT curr_connections 10 当前打开连接数
STAT total_connections 82 曾打开的连接总数
STAT connection_structures 13 服务器分配的连接结构数
STAT cmd_get 54 执行get命令总数
STAT cmd_set 34 执行set命令总数
STAT cmd_flush 3 指向flush_all命令总数
STAT get_hits 9 get命中次数
STAT get_misses 45 get未命中次数
STAT delete_misses 5 delete未命中次数
STAT delete_hits 1 delete命中次数
STAT incr_misses 0 incr未命中次数
STAT incr_hits 0 incr命中次数
STAT decr_misses 0 decr未命中次数
STAT decr_hits 0 decr命中次数
STAT cas_misses 0 cas未命中次数
STAT cas_hits 0 cas命中次数
STAT cas_badval 0 使用擦拭次数
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 15785 读取字节总数
STAT bytes_written 15222 写入字节总数
STAT limit_maxbytes 1048576 分配的内存数(字节)
STAT accepting_conns 1 目前接受的链接数
STAT listen_disabled_num 0
STAT threads 4 线程数
STAT conn_yields 0
STAT bytes 0 存储item字节数
STAT curr_items 0 item个数
STAT total_items 34 item总数
STAT evictions 0 为获取空间删除item的总数
2. stats items命令
输出各个slab中的item信息,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
STAT items:1:number 2
STAT items:1:age 1188
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
STAT items:1:crawler_reclaimed 0
STAT items:1:lrutail_reflocked 0
END
3. stats slabs命令
输出slab中更详细的item信息,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 2
STAT 1:free_chunks 10920
STAT 1:free_chunks_end 0
STAT 1:mem_requested 144
STAT 1:get_hits 19
STAT 1:cmd_set 12
STAT 1:delete_hits 1
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 2
STAT 1:cas_badval 2
STAT 1:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048512
END